# CI CD

> Use when modifying or reviewing files under .github/workflows/ in Kratos Multiphysics. Not needed for everyday code changes.

- Skill: `kratosmultiphysics/ci-cd` (Agent Skill)
- Install (CLI): `npx skillmds@latest add kratosmultiphysics/ci-cd`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kratosmultiphysics/ci-cd/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: kratosmultiphysics (https://skillmd.com/u/kratosmultiphysics)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/kratosmultiphysics/ci-cd

---


# 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 `concurrency` group (`ci-${{ github.head_ref }}`) and `cancel-in-progress: true`.
- Only change CI behavior when explicitly requested; do not refactor unrelated jobs.

