From 1d94678a9e585e19dd83f36fc4dddf29ceec4afd Mon Sep 17 00:00:00 2001 From: "Celina G. Val" Date: Thu, 6 Jun 2024 18:40:28 -0700 Subject: [PATCH] Add a workflow to run Rust repo tests --- .github/workflows/rustc.yml | 59 +++++++++++++++++++++++++++++++++++++ rust-toolchain.toml | 9 ++++++ 2 files changed, 68 insertions(+) create mode 100644 .github/workflows/rustc.yml create mode 100644 rust-toolchain.toml diff --git a/.github/workflows/rustc.yml b/.github/workflows/rustc.yml new file mode 100644 index 0000000000000..58837cfa72155 --- /dev/null +++ b/.github/workflows/rustc.yml @@ -0,0 +1,59 @@ +# Copyright Kani Contributors +# SPDX-License-Identifier: Apache-2.0 OR MIT + +# This workflow is responsible for building the standard library using the bootstrap script +# and executing the Rust regression. + +name: Check Rust bootstrap +on: + workflow_dispatch: + pull_request: + paths: + - 'library/**' + - 'rust-toolchain.toml' + push: + paths: + - 'library/**' + - 'rust-toolchain.toml' + +defaults: + run: + shell: bash + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + steps: + - name: Checkout Library + uses: actions/checkout@v4 + with: + path: head + + - name: Checkout `upstream/master` + uses: actions/checkout@v4 + with: + repository: rust-lang/rust + path: upstream + + # Run rustc twice in case the toolchain needs to be installed. + # Retrieve the commit id from the `rustc --version`. Output looks like: + # `rustc 1.80.0-nightly (84b40fc90 2024-05-27)` + - name: Checkout matching commit + run: | + cd head + rustc --version + COMMIT_ID=$(rustc --version | sed -e "s/.*(\(.*\) .*/\1/") + cd ../upstream + git checkout ${COMMIT_ID} + + - name: Copy Library + run: | + rm -rf upstream/library + cp -r head/library upstream + + - name: Run tests + working-directory: upstream + run: ./x test --stage 1 diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000000000..31b1f7dd8e678 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,9 @@ +# Copyright Kani Contributors +# SPDX-License-Identifier: Apache-2.0 OR MIT + +# This version should be updated whenever we update the version of the Rust +# standard library we currently track. + +[toolchain] +channel = "nightly-2024-05-23" +components = ["llvm-tools-preview", "rustc-dev", "rust-src", "rustfmt"]