From 38ae91cfe5b31152bfc2c0b3549fba9f0e049140 Mon Sep 17 00:00:00 2001 From: mulhern Date: Fri, 15 May 2026 21:31:51 -0400 Subject: [PATCH 1/2] Add rust-toolchain.toml file Signed-off-by: mulhern --- rust-toolchain.toml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 rust-toolchain.toml diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 00000000..ab562ec7 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "1.95.0" # CURRENT DEVELOPMENT RUST TOOLCHAIN From e8fd0de3b13af55d0fd83a60e9d8d1645e922649 Mon Sep 17 00:00:00 2001 From: mulhern Date: Fri, 15 May 2026 21:44:02 -0400 Subject: [PATCH 2/2] github actions: Use Cargo.toml and rust-toolchain.toml Use the values specified in these files to set toolchain versions in CI. Signed-off-by: mulhern --- .github/workflows/cargo.yml | 8 +++--- .github/workflows/main.yml | 54 ++++++++++++++++------------------- .github/workflows/nightly.yml | 13 ++++----- 3 files changed, 34 insertions(+), 41 deletions(-) diff --git a/.github/workflows/cargo.yml b/.github/workflows/cargo.yml index b87fee67..1d51f025 100644 --- a/.github/workflows/cargo.yml +++ b/.github/workflows/cargo.yml @@ -28,6 +28,10 @@ jobs: with: path: libcryptsetup-rs persist-credentials: false + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + components: cargo + rust-src-dir: libcryptsetup-rs - name: Install dependencies for Fedora run: > dnf install -y @@ -38,10 +42,6 @@ jobs: openssl-devel python-requests python-semantic_version - - uses: dtolnay/rust-toolchain@master - with: - components: cargo - toolchain: 1.95.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN - name: Check out ci repo uses: actions/checkout@v6 with: diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1d485302..668aaeb1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,7 +21,6 @@ jobs: format: env: TASK: fmt-ci - TOOLCHAIN: 1.95.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN runs-on: ubuntu-22.04 steps: - name: Install git @@ -29,16 +28,14 @@ jobs: - uses: actions/checkout@v6 with: persist-credentials: false - - uses: dtolnay/rust-toolchain@master + - uses: actions-rust-lang/setup-rust-toolchain@v1 with: components: rustfmt - toolchain: ${{ env.TOOLCHAIN }} - - name: Test format on ${{ env.TOOLCHAIN }} toolchain + - name: Test format on CURRENT DEVELOPMENT RUST TOOLCHAIN run: make -f Makefile $TASK lint: env: TASK: clippy - TOOLCHAIN: 1.95.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN runs-on: ubuntu-22.04 steps: - name: Install git @@ -46,10 +43,9 @@ jobs: - uses: actions/checkout@v6 with: persist-credentials: false - - uses: dtolnay/rust-toolchain@master + - uses: actions-rust-lang/setup-rust-toolchain@v1 with: components: clippy - toolchain: ${{ env.TOOLCHAIN }} - name: Install dependencies run: > sudo apt-get install libcryptsetup-dev @@ -58,7 +54,6 @@ jobs: typos: env: TASK: check-typos - TOOLCHAIN: 1.95.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN runs-on: ubuntu-22.04 steps: - name: Install git @@ -66,9 +61,7 @@ jobs: - uses: actions/checkout@v6 with: persist-credentials: false - - uses: dtolnay/rust-toolchain@master - with: - toolchain: ${{ env.TOOLCHAIN }} + - uses: actions-rust-lang/setup-rust-toolchain@v1 - uses: baptiste0928/cargo-install@v3 with: crate: typos-cli @@ -76,10 +69,7 @@ jobs: run: make -f Makefile $TASK - # MANDATORY TESTING ON STABLE stable: - env: - TOOLCHAIN: stable strategy: matrix: include: @@ -104,19 +94,14 @@ jobs: - uses: actions/checkout@v6 with: persist-credentials: false - - uses: dtolnay/rust-toolchain@master - with: - toolchain: ${{ env.TOOLCHAIN }} + - uses: actions-rust-lang/setup-rust-toolchain@v1 - name: Install dependencies run: > sudo apt-get install ${{ matrix.dependencies }} - name: Test ${{ matrix.task }} on ${{ env.TOOLCHAIN }} toolchain run: ${{ matrix.task }} - # MANDATORY TESTING USING LOWEST SUPPORTED TOOLCHAIN lowest_supported: - env: - TOOLCHAIN: 1.85.0 # LOWEST SUPPORTED RUST TOOLCHAIN strategy: matrix: include: @@ -130,23 +115,27 @@ jobs: steps: - name: Install git run: sudo apt-get install git + - name: Install toml-cli + run: pip install --user toml-cli - uses: actions/checkout@v6 with: persist-credentials: false - - uses: dtolnay/rust-toolchain@master + - name: Get package MSRV + id: msrv + run: | + PATH="$PATH:$(python3 -m site --user-base)/bin" MSRV=$(toml get --toml-path Cargo.toml "package.rust-version") + echo "MSRV=$MSRV" >> "$GITHUB_OUTPUT" + - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: ${{ env.TOOLCHAIN }} + toolchain: ${{ steps.msrv.outputs.MSRV }} - name: Install dependencies run: > sudo apt-get install ${{ matrix.dependencies }} - - name: Test ${{ matrix.task }} on ${{ env.TOOLCHAIN }} toolchain + - name: Test ${{ matrix.task }} on LOWEST SUPPORTED RUST TOOLCHAIN run: ${{ matrix.task }} # MANDATORY TESTING ON FEDORA fedora: - env: - # Lowest supported - TOOLCHAIN: 1.85.0 # LOWEST SUPPORTED RUST TOOLCHAIN strategy: matrix: include: @@ -234,13 +223,20 @@ jobs: options: --privileged -v /dev:/dev steps: - name: Install git - run: dnf install -y git + run: dnf install -y git python3-pip + - name: Install toml-cli + run: pip install --user toml-cli - uses: actions/checkout@v6 with: persist-credentials: false - - uses: dtolnay/rust-toolchain@master + - name: Get package MSRV + id: msrv + run: | + PATH="$PATH:$(python3 -m site --user-base)/bin" MSRV=$(toml get --toml-path Cargo.toml "package.rust-version") + echo "MSRV=$MSRV" >> "$GITHUB_OUTPUT" + - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: ${{ env.TOOLCHAIN }} + toolchain: ${{ steps.msrv.outputs.MSRV }} - name: Install dependencies run: dnf install -y make gcc clang-devel ${{ matrix.dependencies }} - name: Test ${{ matrix.task }} on ${{ env.TOOLCHAIN }} toolchain diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 419622e6..972f73a4 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -17,10 +17,9 @@ jobs: - uses: actions/checkout@v6 with: persist-credentials: false - - uses: dtolnay/rust-toolchain@master + - uses: actions-rust-lang/setup-rust-toolchain@v1 with: components: cargo - toolchain: 1.95.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN - name: Install dependencies run: sudo apt-get install libcryptsetup-dev - uses: baptiste0928/cargo-install@v3 @@ -40,6 +39,10 @@ jobs: with: path: libcryptsetup-rs persist-credentials: false + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + components: cargo + rust-src-dir: libcryptsetup-rs - name: Install dependencies for Fedora run: > dnf install -y @@ -50,10 +53,6 @@ jobs: openssl-devel python-requests python-semantic_version - - uses: dtolnay/rust-toolchain@master - with: - components: cargo - toolchain: 1.95.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN - name: Check out ci repo uses: actions/checkout@v6 with: @@ -87,10 +86,8 @@ jobs: uses: obi1kenobi/cargo-semver-checks-action@v2 with: verbose: true - rust-toolchain: 1.95.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN manifest-path: libcryptsetup-rs-sys - name: Do semantic version checks uses: obi1kenobi/cargo-semver-checks-action@v2 with: verbose: true - rust-toolchain: 1.95.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN