CI/CD Pipeline
Use this skill when the user asks about the continuous integration and deployment pipeline, GitHub Actions workflows, or automated quality checks.
Running the Full Pipeline Locally
./scripts/pipeline.sh
The pipeline runs all quality checks and tests across the supported configuration matrix.
Pipeline Steps
The pipeline runs these steps in order:
- Spell Check — Checks spelling in source code.
- Format Check — Verifies code formatting.
- Lint Check — Runs Clippy and other linters.
- Verify — Runs Verus formal verification on annotated crates.
- Build — Compiles all targets.
- Test — Runs unit and system integration tests.
Configuration Matrix
Machine-Independent Steps
spellcheckandformatrun once (not per-machine).
Machine-Dependent Steps
scripts/pipeline.sh executes machine-dependent
steps for microvm and hyperlight.
| Machine | Build Types | Deployment Types |
|---|---|---|
microvm |
debug, release | standalone, single, multi, l2 |
hyperlight |
debug, release | single, multi, l2 |
Build Parameter Mapping
| Deployment Type | DEPLOYMENT_MODE |
|---|---|
| standalone | standalone |
| single-process | single-process |
| multi-process | multi-process |
| l2 | l2 |
Individual Quality Checks
# Spell check.
./z build -- spellcheck
# Format check.
./z build -- format-check
# Lint check.
./z build -- lint-check
# Formal verification.
./z build -- verify
# Unit tests.
./z build -- run-unit-tests
GitHub Actions Workflows
Workflows are defined in .github/workflows/. They follow the same quality gates as the local
pipeline, but matrix coverage is split across multiple jobs (including dedicated L2 jobs) and run on
pull requests and pushes to dev.
Matrix coverage in GitHub Actions:
checks: format + spellcheck (single run).lint,verify,ci-build:microvmandhyperlightwithstandalone,single-process, andmulti-process.ci-test: same matrix, excludinghyperlight + standalone.ci-l2: separate L2 jobs formicrovmandhyperlight.
Note: The
ci-windowsworkflow validates Windows host builds (nanvixd, UserVM, source checks) and runs a smoke test using nanvixd in standalone interactive mode on WHP-enabled runners.
Release Process
# Create a release archive.
./z build -- release
# The archive name follows this pattern:
# nanvix-<ver>-<target>-<machine>-<deploy>-<mode>-<log>-<memory>mb.tar.bz2
Minor releases can be created with:
./scripts/create-minor-release.sh
Pipeline Output
The pipeline tracks and reports:
- Pass/fail/skip counts per step.
- Total elapsed time.
- Detailed error output for failed steps.
Converted and distributed by TomeVault — claim your Tome and manage your conversions.