@@ -3,6 +3,7 @@ name: blake2
33on :
44 pull_request :
55 paths :
6+ - " .github/workflows/blake2.yml"
67 - " blake2/**"
78 - " Cargo.*"
89 push :
1617 CARGO_INCREMENTAL : 0
1718 RUSTFLAGS : " -Dwarnings"
1819
20+ # Cancels CI jobs when new commits are pushed to a PR branch
21+ concurrency :
22+ group : ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
23+ cancel-in-progress : true
24+
1925jobs :
26+ set-msrv :
27+ uses : RustCrypto/actions/.github/workflows/set-msrv.yml@master
28+ with :
29+ msrv : 1.85.0
30+
2031 build :
32+ needs : set-msrv
2133 runs-on : ubuntu-latest
2234 strategy :
2335 matrix :
2436 rust :
25- - 1.41.0 # MSRV
37+ - ${{needs.set-msrv.outputs.msrv}}
2638 - stable
2739 target :
2840 - thumbv7em-none-eabi
2941 - wasm32-unknown-unknown
3042 steps :
31- - uses : actions/checkout@v1
32- - uses : actions-rs/toolchain@v1
43+ - uses : actions/checkout@v5
44+ - uses : RustCrypto/actions/cargo-cache@master
45+ - uses : dtolnay/rust-toolchain@master
3346 with :
34- profile : minimal
3547 toolchain : ${{ matrix.rust }}
36- target : ${{ matrix.target }}
37- override : true
38- - run : cargo build --target ${{ matrix.target }} --release --no-default-features
39- - run : cargo build --target ${{ matrix.target }} --release --no-default-features --features blake2b
40- - run : cargo build --target ${{ matrix.target }} --release --no-default-features --features blake2s
41- - run : cargo build --target ${{ matrix.target }} --release --no-default-features --features blake2b,blake2s
48+ targets : ${{ matrix.target }}
49+ - uses : RustCrypto/actions/cargo-hack-install@master
50+ - run : cargo hack build --target ${{ matrix.target }} --each-feature --exclude-features default,std,simd,simd_asm,simd_opt
4251
4352 test :
53+ needs : set-msrv
4454 runs-on : ubuntu-latest
4555 strategy :
4656 matrix :
4757 rust :
48- - 1.41.0 # MSRV
58+ - ${{needs.set-msrv.outputs.msrv}}
4959 - stable
5060 steps :
51- - uses : actions/checkout@v1
52- - uses : actions-rs/toolchain@v1
53- with :
54- profile : minimal
55- toolchain : ${{ matrix.rust }}
56- override : true
57- - run : cargo test --release
61+ - uses : actions/checkout@v5
62+ - uses : RustCrypto/actions/cargo-cache@master
63+ - uses : dtolnay/rust-toolchain@master
64+ with :
65+ toolchain : ${{ matrix.rust }}
66+ - uses : RustCrypto/actions/cargo-hack-install@master
67+ - run : cargo hack test --feature-powerset --exclude-features simd,simd_asm,simd_opt
68+
69+
70+ minimal-versions :
71+ uses : RustCrypto/actions/.github/workflows/minimal-versions.yml@master
72+ with :
73+ working-directory : ${{ github.workflow }}
74+ stable-cmd : cargo hack test --release --feature-powerset --exclude-features simd,simd_opt,simd_asm
75+
76+ # No longer builds on recent nightlies
77+ # simd:
78+ # runs-on: ubuntu-latest
79+ # steps:
80+ # - uses: actions/checkout@v5
81+ # - uses: RustCrypto/actions/cargo-cache@master
82+ # - uses: dtolnay/rust-toolchain@master
83+ # with:
84+ # toolchain: nightly-2021-05-01
85+ # - run: cargo test --features simd
86+ # - run: cargo test --features simd_opt
87+ # - run: cargo test --features simd_asm
88+
89+ # Cross-compiled tests
90+ cross :
91+ needs : set-msrv
92+ strategy :
93+ matrix :
94+ rust :
95+ - ${{needs.set-msrv.outputs.msrv}}
96+ - stable
97+ target :
98+ - aarch64-unknown-linux-gnu
99+ - powerpc-unknown-linux-gnu
100+ features :
101+ - default
102+
103+ runs-on : ubuntu-latest
104+ defaults :
105+ run :
106+ # Cross mounts only current package, i.e. by default it ignores workspace's Cargo.toml
107+ working-directory : .
108+ steps :
109+ - uses : RustCrypto/actions/cross-tests@master
110+ with :
111+ rust : ${{ matrix.rust }}
112+ package : ${{ github.workflow }}
113+ target : ${{ matrix.target }}
114+ features : ${{ matrix.features }}
0 commit comments