Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
91bc1da
chore: Run tests for all workspace crates, divided into 4 groups usin…
dvdplm Apr 20, 2026
bb5921b
fix: Remove buildx stuff
dvdplm Apr 20, 2026
b94d16f
Run tests for new crates with --all-features
dvdplm Apr 20, 2026
5b925aa
Echo all commands ran
dvdplm Apr 20, 2026
958e66d
fix: clippy issues uncovered from running it at the package level
dvdplm Apr 20, 2026
2767746
chore: print full nextest invocation for debugger-person's convenience
dvdplm Apr 20, 2026
5fc1482
Can't use `expect` because in some combinations of features it's unfu…
dvdplm Apr 20, 2026
4456756
Merge branch 'main' into dvdplm/chore/test-all-new-crates
dvdplm Apr 20, 2026
d3910d6
Fix bash shenanigans
dvdplm Apr 20, 2026
d64d4ad
Don't fail for crates with no tests
dvdplm Apr 20, 2026
342e3d0
TEMPORARY! Shut off all CI jobs except mine
dvdplm Apr 21, 2026
19877e0
TEMPORARY: disable all other workflows. Beefier runner.
dvdplm Apr 21, 2026
9acab98
Do not run with --all-features undiscriminately. Fine tune runner con…
dvdplm Apr 21, 2026
0097387
Coalesce fast-ish tests into one run-group, `runtime`.
dvdplm Apr 21, 2026
37bcc49
Split out `experimental` to own CI runner.
dvdplm Apr 21, 2026
d825730
Restore temporarily disabled CI stages/jobs
dvdplm Apr 21, 2026
a72c41f
Move networking back to run with experimental
dvdplm Apr 21, 2026
7561fe8
Rename package to crate
dvdplm Apr 21, 2026
a9b04d7
Run clippy on the full workspace
dvdplm Apr 21, 2026
a47944d
Try running 8 test processes in parallel
dvdplm Apr 21, 2026
7756daf
Use a bigger runner for slowest stage
dvdplm Apr 21, 2026
f7531eb
Merge branch 'main' into dvdplm/chore/light-touch-ci-reform
dvdplm Apr 21, 2026
6706a28
review feedback
dvdplm Apr 22, 2026
6f9f22b
Merge branch 'dvdplm/chore/light-touch-ci-reform' of github.com:zama-…
dvdplm Apr 22, 2026
dc91f5f
Merge branch 'main' into dvdplm/chore/light-touch-ci-reform
dvdplm Apr 22, 2026
bcf9fdd
Merge conflict fix
dvdplm Apr 22, 2026
ff23fe6
Ignore https://rustsec.org/advisories/RUSTSEC-2026-0104 – we do not u…
dvdplm Apr 22, 2026
3c38585
The three backwards compatibility tests already run as part of other …
dvdplm Apr 22, 2026
e116871
Don't compile generate-testing-material twice when a CI step needs de…
dvdplm Apr 22, 2026
07da90a
chore: TODOs for follow-up work wrt PR #543 and minimal test material…
dvdplm Apr 23, 2026
6013ad2
chore: add comments wherever zizmor wants them
dvdplm Apr 23, 2026
3a3f96c
fix(ci): fix minio mc download
fegmorte Apr 23, 2026
a5fdc91
Merge remote-tracking branch 'origin/main' into dvdplm/chore/light-to…
dvdplm Apr 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 2 additions & 6 deletions .github/workflows/common-testing-big-instance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ on:
type: string
required: false
default: "-F wasm_tests"
package-name:
crate-names:
type: string
required: true
test-coverage:
Expand All @@ -48,9 +48,6 @@ on:
type: string
required: false
default: "big-instance"
app-cache-dir:
type: string
required: true
nextest-profile:
type: string
required: false
Expand Down Expand Up @@ -141,11 +138,10 @@ jobs:
run-minio: ${{ inputs.run-minio }}
run-redis: ${{ inputs.run-redis }}
run-wasm: ${{ inputs.run-wasm }}
package-name: ${{ inputs.package-name }}
crate-names: ${{ inputs.crate-names }}
wasm-test-feature: ${{ inputs.wasm-test-feature }}
test-coverage: ${{ inputs.test-coverage }}
npm-release: ${{ inputs.npm-release }}
app-cache-dir: ${{ inputs.app-cache-dir }}
nextest-profile: ${{ inputs.nextest-profile }}
nextest-test-threads: ${{ inputs.nextest-test-threads }}

Expand Down
83 changes: 22 additions & 61 deletions .github/workflows/common-testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,10 @@ on:
type: string
required: false
default: '-F wasm_tests'
package-name:
# A list of packages forwarded to cargo to run, e.g.
# `-p abc -p def -p ghi`. Injected verbatim into `cargo clippy`
# (and effectively into nextest via `args-tests`).
# TODO(dp): rename to `crate-names` (plural) — it's a list and
# we call them crates, not packages.
crate-names:
# A list of packages forwarded to cargo, e.g. `-p abc -p def -p ghi`.
# Injected verbatim into `cargo clippy` (and effectively into nextest
# via `args-tests`).
type: string
required: true
skip-test-material:
Expand All @@ -70,12 +68,6 @@ on:
type: boolean
required: false
default: false
app-cache-dir:
# TODO(dp): unused — not referenced in any step in this workflow.
# Remove it here, in common-testing-big-instance.yml, and from all
# callers in main.yml.
type: string
required: true
nextest-profile:
type: string
required: false
Expand Down Expand Up @@ -205,7 +197,7 @@ jobs:
uses: ./.github/actions/setup-rust-and-protoc
with:
rust-toolchain: ${{ env.RUST_IMAGE_VERSION }}
rust-components: rustfmt, clippy, llvm-tools-preview, llvm-tools
rust-components: llvm-tools-preview, llvm-tools
rust-cache: "false"
protoc-version: '26.1'
protoc-repo-token: ${{ secrets.GITHUB_TOKEN }}
Expand Down Expand Up @@ -261,35 +253,6 @@ jobs:
mc mb "${MINIO_ALIAS}/${MINIO_BUCKET}"
mc anonymous set public "${MINIO_ALIAS}/${MINIO_BUCKET}"

- name: Setup cargo dylint
run: |
cargo install cargo-dylint dylint-link --force

- name: clippy and rustfmt versions
run: |
cargo clippy -V && cargo fmt --version

- name: Formatting
run: cargo fmt --all -- --check

# - name: Linting default features
# env:
# PACKAGE_NAME: ${{inputs.package-name}}
# run: cargo clippy --all-targets --package "${PACKAGE_NAME}" -- -D warnings

# TODO(dp): Clippy is cheap; replace per-crate clippy with a single workspace-level
# `cargo clippy --workspace --all-targets --all-features` job.
- name: Linting All features
env:
PACKAGE_NAME: ${{inputs.package-name}}
run: |
echo "EXECUTING: cargo clippy --all-targets --all-features ${PACKAGE_NAME} -- -D warnings"
# shellcheck disable=SC2086 # intentional word-splitting: PACKAGE_NAME is a flag list like `-p a -p b`
cargo clippy --all-targets --all-features ${PACKAGE_NAME} -- -D warnings

- name: Linting dylint
run: cargo dylint --all

# Download pre-generated default test material if available (for slow_tests jobs)
- name: Download Test Material (Default)
if: ${{ inputs.use-pregenerated-material }}
Expand All @@ -308,25 +271,23 @@ jobs:
rm test-material-default.tar.gz
ls -la ./test-material/

# Generate testing material (always needed, small and fast to generate)
# Must run from workspace root, not working-directory
- name: Generate Test Material (Testing)
if: ${{ ! inputs.skip-test-material }}
working-directory: .
run: |
echo "Generating testing material..."
echo "EXECUTING: cargo run -p generate-test-material -- --output ./test-material --verbose testing"
cargo run -p generate-test-material -- --output ./test-material --verbose testing

# Generate default material when explicitly requested or for slow_tests,
# and only when not using pre-generated artifacts.
- name: Generate Test Material (Default)
if: ${{ ! inputs.skip-test-material && ! inputs.use-pregenerated-material && (inputs.generate-default-material || contains(inputs.args-tests, 'slow_tests')) }}
# Generate test material. Subcommand is `all` (testing + default) when
# the job uses slow_tests or explicitly requests default; otherwise
# `testing` only. Must run from workspace root, not working-directory.
- name: Generate Test Material
if: ${{ ! inputs.skip-test-material && ! inputs.use-pregenerated-material }}
working-directory: .
env:
GENERATE_DEFAULT: ${{ inputs.generate-default-material }}
ARGS_TESTS: ${{ inputs.args-tests }}
run: |
echo "Generating default test material..."
echo "EXECUTING: cargo run -p generate-test-material --features slow_tests -- --output ./test-material --verbose default"
cargo run -p generate-test-material --features slow_tests -- --output ./test-material --verbose default
if [[ "${GENERATE_DEFAULT}" == "true" ]] || [[ "${ARGS_TESTS}" == *slow_tests* ]]; then
SUBCOMMAND=all
else
SUBCOMMAND=testing
fi
echo "EXECUTING: cargo run -p generate-test-material -- --output ./test-material --verbose ${SUBCOMMAND}"
cargo run -p generate-test-material -- --output ./test-material --verbose "${SUBCOMMAND}"

# Build kms-custodian binary required by integration tests
- name: Build kms-custodian binary
Expand Down Expand Up @@ -480,9 +441,9 @@ jobs:
if: always()
id: logs-label
env:
PACKAGE_NAME: ${{ inputs.package-name }}
CRATE_NAMES: ${{ inputs.crate-names }}
shell: bash
run: echo "value=$(echo "${PACKAGE_NAME}" | sed -E 's/-p +//g' | tr ' ' '_')" >> "$GITHUB_OUTPUT"
run: echo "value=$(echo "${CRATE_NAMES}" | sed -E 's/-p +//g' | tr ' ' '_')" >> "$GITHUB_OUTPUT"

- name: Archive integration test trace logs
if: always()
Expand Down
Loading
Loading