11name : Build
22
3- concurrency :
3+ concurrency :
44 group : ${{ github.workflow }}-${{ github.ref }}
55 cancel-in-progress : true
66
@@ -39,34 +39,20 @@ jobs:
3939 - aarch64-apple-ios
4040 # WASM
4141 - wasm32-unknown-unknown
42- include :
43- # Compile iOS sim on macOS
44- - os : macos-latest
45- arch : aarch64-apple-ios-sim
46- mode :
47- - debug
48- - release
4942 runs-on : ubuntu-latest
5043 steps :
51- - uses : actions/checkout@v6
52- # Install the required target
44+ - uses : actions/checkout@v7
5345 - uses : dtolnay/rust-toolchain@stable
5446 with :
5547 target : ${{ matrix.arch }}
5648 - uses : Swatinem/rust-cache@v2
5749
58- - run : |
59- if [ ${{ matrix.mode }} == debug ]; then
60- echo "TEST_MODE=" >> $GITHUB_ENV
61- else
62- echo "TEST_MODE=--release" >> $GITHUB_ENV
63- fi
6450 - name : Build (wasm)
6551 if : matrix.arch == 'wasm32-unknown-unknown'
66- run : cargo build $TEST_MODE --verbose --target ${{ matrix.arch }} -p openmls -F js
52+ run : cargo build --release --verbose --target ${{ matrix.arch }} -p openmls -F js
6753 - name : Build
68- if : ${{ matrix.arch != 'wasm32-unknown-unknown' }}
69- run : cargo build $TEST_MODE --verbose --target ${{ matrix.arch }} -p openmls
54+ if : ${{ matrix.arch != 'wasm32-unknown-unknown' }}
55+ run : cargo build --release --verbose --target ${{ matrix.arch }} -p openmls
7056
7157 # Check feature powerset
7258 check :
@@ -75,14 +61,33 @@ jobs:
7561
7662 runs-on : ubuntu-latest
7763 steps :
78- - uses : actions/checkout@v6
64+ - uses : actions/checkout@v7
7965 - uses : dtolnay/rust-toolchain@stable
8066 - uses : Swatinem/rust-cache@v2
8167 - uses : taiki-e/install-action@cargo-hack
8268
83- # Group all features except fork-resolution,js,extensions-draft-08
69+ # Group features into independent axes to keep the powerset small.
70+ # `virtual-clients-draft` already enables `extensions-draft-08`, so they
71+ # share one "drafts" group. The pure cfg-gate flags don't interact and
72+ # form a "misc" group. `all-ciphersuites` only affects test expansion and
73+ # has no effect on a `--no-dev-deps check`, so it is excluded.
8474 - name : Cargo hack
8575 run : |
8676 cargo hack check --feature-powerset --no-dev-deps --verbose -p openmls \
8777 --group-features test-utils,crypto-debug,content-debug,backtrace,libcrux-provider,sqlite-provider \
88- --group-features extensions-draft-08,extensions-draft-08-test-dependencies
78+ --group-features extensions-draft,extensions-draft-test-dependencies,virtual-clients-draft,virtual-clients-draft-test-dependencies \
79+ --group-features js,js-test \
80+ --group-features 0-8-1-storage-format,generate-kats,unchecked-conversions,fork-resolution \
81+ --exclude-features all-ciphersuites
82+
83+ # Verify the crates build with the declared MSRV (specified in rust-version in Cargo.toml)
84+ msrv :
85+ runs-on : ubuntu-latest
86+ steps :
87+ - name : Install dependencies
88+ run : sudo apt-get -y install protobuf-compiler # Needed to build the interop client
89+ - uses : actions/checkout@v7
90+ # keep in sync with rust-version in Cargo.toml
91+ - uses : dtolnay/rust-toolchain@1.91.0
92+ - uses : Swatinem/rust-cache@v2
93+ - run : cargo check --locked --workspace --all-features --all-targets
0 commit comments