Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Rust for Linux 統合テスト

Rust for Linux (RfL) は、Linux カーネルに Rust プログラミング言語のサポートを追加する取り組みです。

Rust for Linux ジョブが壊れた場合はどうすればよいですか?

PR が Rust for Linux CI ジョブを壊した場合は、次のようにします。

  • 障害が意図しないもので、一時的なものに見える場合は、RfL に 知らせて再試行します。
    • PR が緊急で、再試行しても修正されない場合は、CI ジョブを 一時的に無効にします(src/ci/github-actions/jobs.ymlimage: x86_64-rust-for-linux ジョブをコメントアウトします)。
  • 障害が意図しないものだった場合は、その障害を解決するように PR を変更します。
  • 障害が意図したものだった場合は、RfL に知らせて、 カーネル側で何を変更する必要があるかを話し合います。
    • PR が緊急の場合は、CI ジョブを一時的に無効にします( src/ci/github-actions/jobs.ymlimage: x86_64-rust-for-linux ジョブをコメントアウトします)。
    • PR が数日待てる場合は、RfL メンテナーが必要な変更を行った 新しい Linux カーネルのコミットハッシュを提供するのを待ち、それを PR に適用します。これにより、変更が機能することを確認できます( src/ci/docker/scripts/rfl-build.shLINUX_VERSION 環境変数を更新します)。

RfL 開発者に連絡する必要がある場合は、Rust for Linux ping グループに ping して助けを求めることができます。

@rustbot ping rfl

CI で Rust for Linux をビルドする

Rust for Linux は、プルリクエストがマージされる前に実行される bors テスト群の一部として ビルドされます。

このワークフローは、Rust コンパイラの stage1 sysroot をビルドし、Linux カーネルをダウンロードして、この sysroot を使用して複数の Rust for Linux ドライバーと サンプルのコンパイルを試みます。RfL は複数の不安定なコンパイラ/言語機能を使用しているため、 このワークフローにより、特定のコンパイラ変更によってそれが壊れる場合に通知されます。

プルリクエストが Rust for Linux ビルダーを壊す可能性を懸念していて、 bors キューに送信する前にテストしたい場合は、bors に Rust for Linux 統合をビルドする try ジョブを実行するよう依頼するだけです。 @bors try jobs=x86_64-rust-for-linux