원클릭으로
ci-cd-pipeline
// Guide for Nanvix CI and GitHub Actions workflow behavior, including local pipeline execution and matrix coverage. Use this when asked about CI checks, workflow failures, or release flow.
// Guide for Nanvix CI and GitHub Actions workflow behavior, including local pipeline execution and matrix coverage. Use this when asked about CI checks, workflow failures, or release flow.
Guide for developing, building, and running Nanvix user-space applications across supported runtimes and languages. Use this when asked about guest app implementation or execution.
Guide for creating and modifying Nanvix libraries under src/libs, including guest no_std and host std crates. Use this when asked about library architecture or crate changes.
Guide for developing and debugging Nanvix daemons, including guest daemons and host linuxd behavior. Use this when asked about daemon architecture or daemon changes.
Guide for modifying and debugging the Nanvix kernel architecture and kernel-call paths. Use this when asked about kernel internals or kernel implementation changes.
Guide for writing, running, and debugging Nanvix unit, integration, and system tests in Rust and C/C++. Use this when asked about test implementation or failures.
Guide for running Nanvix tests with z. Use this when asked to run unit tests, integration tests, or the full test suite.
| name | ci-cd-pipeline |
| description | Guide for Nanvix CI and GitHub Actions workflow behavior, including local pipeline execution and matrix coverage. Use this when asked about CI checks, workflow failures, or release flow. |
Use this skill when the user asks about the continuous integration and deployment pipeline, GitHub Actions workflows, or automated quality checks.
./scripts/pipeline.sh
The pipeline runs all quality checks and tests across the supported configuration matrix.
The pipeline runs these steps in order:
spellcheck and format run once (not per-machine).scripts/pipeline.sh executes machine-dependent
steps for microvm.
| Machine | Build Types | Deployment Types |
|---|---|---|
microvm | debug, release | standalone, single, multi, l2 |
| Deployment Type | DEPLOYMENT_MODE |
|---|---|
| standalone | standalone |
| single-process | single-process |
| multi-process | multi-process |
| l2 | l2 |
# 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
Workflows are defined in .github/workflows/. They follow the same quality gates as the local
pipeline, but matrix coverage is split across multiple jobs and run on pull requests and pushes to
dev.
Matrix coverage in GitHub Actions:
checks: format + spellcheck (single run).lint, verify, ci-build: microvm with standalone,
single-process, and multi-process.ci-test: same matrix.Note: The local pipeline covers the
l2deployment type, but CI does not run L2 jobs.
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.
# Create a release archive.
./z build -- release
# The archive name follows this pattern:
# nanvix-<ver>-<target>-<machine>-<deploy>-<mode>-<log>-<memory>mb.tar.bz2
Releases can be created with:
# Patch release (X.Y.Z -> X.Y.(Z+1))
python3 scripts/create-release.py --patch # Linux / macOS
python scripts/create-release.py --patch # Windows
# Minor release (X.Y.Z -> X.(Y+1).0)
python3 scripts/create-release.py --minor # Linux / macOS
python scripts/create-release.py --minor # Windows
# Major release (X.Y.Z -> (X+1).0.0)
python3 scripts/create-release.py --major # Linux / macOS
python scripts/create-release.py --major # Windows
The pipeline tracks and reports: