build(deps): bump actions/checkout from 4 to 6 #1077
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: chacha20 | |
| on: | |
| pull_request: | |
| paths: | |
| - ".github/workflows/chacha20.yml" | |
| - "chacha20/**" | |
| - "Cargo.*" | |
| push: | |
| branches: master | |
| defaults: | |
| run: | |
| working-directory: chacha20 | |
| env: | |
| CARGO_INCREMENTAL: 0 | |
| RUSTFLAGS: "-Dwarnings" | |
| # NOTE: The mirror number changes with each version so keep these in sync | |
| SDE_FULL_VERSION_MIRROR: "859732" | |
| SDE_FULL_VERSION: "9.58.0-2025-06-16" | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| rust: | |
| - 1.85.0 # MSRV | |
| - stable | |
| target: | |
| - thumbv7em-none-eabi | |
| - wasm32-unknown-unknown | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: RustCrypto/actions/cargo-cache@master | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust }} | |
| targets: ${{ matrix.target }} | |
| - uses: RustCrypto/actions/cargo-hack-install@master | |
| - run: cargo hack build --feature-powerset --target ${{ matrix.target }} | |
| minimal-versions: | |
| uses: RustCrypto/actions/.github/workflows/minimal-versions.yml@master | |
| with: | |
| working-directory: ${{ github.workflow }} | |
| # Tests for runtime CPU feature detection | |
| autodetect: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| include: | |
| # 32-bit Linux | |
| - target: i686-unknown-linux-gnu | |
| rust: 1.85.0 # MSRV | |
| deps: sudo apt update && sudo apt install gcc-multilib | |
| - target: i686-unknown-linux-gnu | |
| rust: stable | |
| deps: sudo apt update && sudo apt install gcc-multilib | |
| # 64-bit Linux | |
| - target: x86_64-unknown-linux-gnu | |
| rust: 1.85.0 # MSRV | |
| - target: x86_64-unknown-linux-gnu | |
| rust: stable | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: RustCrypto/actions/cargo-cache@master | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust }} | |
| targets: ${{ matrix.target }} | |
| - uses: RustCrypto/actions/cargo-hack-install@master | |
| - run: ${{ matrix.deps }} | |
| - run: cargo check --target ${{ matrix.target }} --all-features | |
| - run: cargo hack test --feature-powerset --target ${{ matrix.target }} | |
| # Tests for the AVX-512 backend | |
| avx512: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| include: | |
| - target: x86_64-unknown-linux-gnu | |
| rust: stable | |
| RUSTFLAGS: "-Dwarnings --cfg chacha20_avx512" | |
| env: | |
| CARGO_INCREMENTAL: 0 | |
| RUSTFLAGS: ${{ matrix.RUSTFLAGS }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install Intel SDE | |
| run: | | |
| curl -JLO "https://downloadmirror.intel.com/${{ env.SDE_FULL_VERSION_MIRROR }}/sde-external-${{ env.SDE_FULL_VERSION }}-lin.tar.xz" | |
| tar xvf sde-external-${{ env.SDE_FULL_VERSION }}-lin.tar.xz -C /opt | |
| echo "/opt/sde-external-${{ env.SDE_FULL_VERSION }}-lin" >> $GITHUB_PATH | |
| - uses: RustCrypto/actions/cargo-cache@master | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust }} | |
| targets: ${{ matrix.target }} | |
| # NOTE: Write a `.cargo/config.toml` to configure the target for AVX-512 | |
| # NOTE: We use intel-sde as the runner since not all GitHub CI hosts support AVX512 | |
| - name: write .cargo/config.toml | |
| shell: bash | |
| run: | | |
| cd ../chacha20/.. | |
| mkdir -p .cargo | |
| echo '[target.${{ matrix.target }}]' > .cargo/config.toml | |
| echo 'runner = "sde64 -future --"' >> .cargo/config.toml | |
| - run: ${{ matrix.deps }} | |
| - run: cargo test --target ${{ matrix.target }} | |
| - run: cargo test --target ${{ matrix.target }} --all-features | |
| # Tests for the AVX2 backend | |
| avx2: | |
| runs-on: ubuntu-latest | |
| env: | |
| RUSTFLAGS: --cfg chacha20_backend="avx2" -Ctarget-feature=+avx2 -Dwarnings | |
| strategy: | |
| matrix: | |
| include: | |
| # 32-bit Linux | |
| - target: i686-unknown-linux-gnu | |
| rust: 1.85.0 # MSRV | |
| deps: sudo apt update && sudo apt install gcc-multilib | |
| - target: i686-unknown-linux-gnu | |
| rust: stable | |
| deps: sudo apt update && sudo apt install gcc-multilib | |
| # 64-bit Linux | |
| - target: x86_64-unknown-linux-gnu | |
| rust: 1.85.0 # MSRV | |
| - target: x86_64-unknown-linux-gnu | |
| rust: stable | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: RustCrypto/actions/cargo-cache@master | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust }} | |
| targets: ${{ matrix.target }} | |
| - uses: RustCrypto/actions/cargo-hack-install@master | |
| - run: ${{ matrix.deps }} | |
| - run: cargo check --target ${{ matrix.target }} --all-features | |
| - run: cargo hack test --feature-powerset --target ${{ matrix.target }} | |
| # Tests for the SSE2 backend | |
| sse2: | |
| runs-on: ubuntu-latest | |
| env: | |
| RUSTFLAGS: --cfg chacha20_backend="sse2" -Dwarnings | |
| strategy: | |
| matrix: | |
| include: | |
| # 32-bit Linux | |
| - target: i686-unknown-linux-gnu | |
| rust: 1.85.0 # MSRV | |
| deps: sudo apt update && sudo apt install gcc-multilib | |
| - target: i686-unknown-linux-gnu | |
| rust: stable | |
| deps: sudo apt update && sudo apt install gcc-multilib | |
| # 64-bit Linux | |
| - target: x86_64-unknown-linux-gnu | |
| rust: 1.85.0 # MSRV | |
| - target: x86_64-unknown-linux-gnu | |
| rust: stable | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: RustCrypto/actions/cargo-cache@master | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust }} | |
| targets: ${{ matrix.target }} | |
| - uses: RustCrypto/actions/cargo-hack-install@master | |
| - run: ${{ matrix.deps }} | |
| - run: cargo check --target ${{ matrix.target }} --all-features | |
| - run: cargo hack test --feature-powerset --target ${{ matrix.target }} | |
| # Tests for the portable software backend | |
| soft: | |
| runs-on: ubuntu-latest | |
| env: | |
| RUSTFLAGS: --cfg chacha20_backend="soft" -Dwarnings | |
| strategy: | |
| matrix: | |
| include: | |
| # 32-bit Linux | |
| - target: i686-unknown-linux-gnu | |
| rust: 1.85.0 # MSRV | |
| deps: sudo apt update && sudo apt install gcc-multilib | |
| - target: i686-unknown-linux-gnu | |
| rust: stable | |
| deps: sudo apt update && sudo apt install gcc-multilib | |
| # 64-bit Linux | |
| - target: x86_64-unknown-linux-gnu | |
| rust: 1.85.0 # MSRV | |
| - target: x86_64-unknown-linux-gnu | |
| rust: stable | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: RustCrypto/actions/cargo-cache@master | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust }} | |
| targets: ${{ matrix.target }} | |
| - uses: RustCrypto/actions/cargo-hack-install@master | |
| - run: ${{ matrix.deps }} | |
| - run: cargo check --target ${{ matrix.target }} --all-features | |
| - run: cargo hack test --feature-powerset --target ${{ matrix.target }} | |
| # Cross-compiled tests | |
| cross: | |
| strategy: | |
| matrix: | |
| include: | |
| # ARM64 | |
| - target: aarch64-unknown-linux-gnu | |
| rust: 1.85.0 # MSRV | |
| - target: aarch64-unknown-linux-gnu | |
| rust: stable | |
| # PPC32 | |
| - target: powerpc-unknown-linux-gnu | |
| rust: 1.85.0 # MSRV | |
| - target: powerpc-unknown-linux-gnu | |
| rust: stable | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| # Cross mounts only current package, i.e. by default it ignores workspace's Cargo.toml | |
| working-directory: . | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: RustCrypto/actions/cargo-cache@master | |
| - run: ${{ matrix.deps }} | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust }} | |
| targets: ${{ matrix.target }} | |
| - uses: RustCrypto/actions/cross-install@master | |
| - run: RUSTFLAGS="${{ matrix.rustflags }}" cross test --package chacha20 --target ${{ matrix.target }} --all-features |