CI/CD Conventions — Kratos Multiphysics
Only relevant when a task explicitly touches .github/workflows/. Otherwise leave CI alone.
Platform
This project uses GitHub Actions exclusively — do not suggest GitLab CI, Travis CI, or any other CI system. Secrets/env vars are managed via GitHub Actions secrets, never hardcoded.
Key Workflows
| File | Trigger | Purpose |
|---|---|---|
ci.yml |
PRs to master, workflow_dispatch |
Main PR check — builds and tests on Ubuntu matrix |
nightly_build.yml |
Scheduled nightly | Broader coverage including Windows and Rocky Linux |
ci.yml first computes changed files/applications (to skip unaffected builds), then runs an
Ubuntu build/test matrix; the nightly workflow adds Windows and Rocky Linux jobs.
Application Selection Files
Which applications get built per CI environment is controlled by JSON files in
.github/workflows/: ci_apps_linux.json, ci_apps_windows.json, ci_apps_rocky.json,
ci_apps_intel.json. Add a new application to the relevant file(s) when it needs CI coverage.
Rules
- Preserve existing job naming and
on:/strategy:/concurrency:style. - Keep the
concurrencygroup (ci-${{ github.head_ref }}) andcancel-in-progress: true. - Only change CI behavior when explicitly requested; do not refactor unrelated jobs.