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 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