Add repository variable CI_RUN_ON_MAIN that gates whether pushes to main trigger CI. When unset (default), pushes to main skip CI; set to 'true' to enable. Pushes to other branches are unaffected. Reorganize GitHub Actions docs into a dedicated tools/github/actions/ directory and consolidate every CI repository variable in a single SPOT (configuration.md). Move actions.md to actions/workflows.md and branch/configuration.md to actions/configuration.md, then update every cross-reference. Trim README files to scope-only per docs/contributing/artefact/files/docs/readme_md.md. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
3.2 KiB
CI Configuration ⚙️
This page is the SPOT (single point of truth) for every repository variable that controls GitHub Actions CI behaviour in this repo. For the workflow catalog see workflows.md; for the CI flow see pipeline.md.
Repository variables are set under Settings → Secrets and variables → Actions → Variables.
Variables 📋
| Variable | Workflow | Default (unset) | Set to activate |
|---|---|---|---|
CI_CANCEL_IN_PROGRESS |
entry-push-latest.yml | Cancels in-progress runs on new push | false to keep in-progress runs alive |
CI_RUN_ON_MAIN |
entry-push-latest.yml | Pushes to main skip CI |
true to run CI on main pushes too |
CI_CANCEL_IN_PROGRESS 🛑
Controls whether a new push cancels an already-running CI pipeline on the same branch.
Default behaviour (variable not set or set to any value other than false):
In-progress runs are cancelled when a new push arrives. This is the recommended setting for most workflows.
To disable cancellation:
- Open the repository on GitHub.
- Go to Settings → Secrets and variables → Actions.
- Switch to the Variables tab.
- Click New repository variable.
- Set Name to
CI_CANCEL_IN_PROGRESSand Value tofalse. - Save.
To re-enable cancellation:
Delete the variable or change its value to anything other than false (e.g. true).
How it works:
cancel-in-progress: ${{ vars.CI_CANCEL_IN_PROGRESS != 'false' }}
| Variable value | Expression result | Behaviour |
|---|---|---|
| (not set / empty) | '' != 'false' → true |
Cancels in-progress runs ✓ |
false |
'false' != 'false' → false |
Does not cancel ✓ |
true |
'true' != 'false' → true |
Cancels in-progress runs ✓ |
CI_RUN_ON_MAIN 🎯
Controls whether pushes to main trigger the CI pipeline. Pushes to all other branches covered by the workflow (feature/**, hotfix/**, fix/**, alert-autofix-*) are unaffected.
Default behaviour (variable not set or set to any value other than true):
Pushes to main are gated out at the run-policy job and CI is skipped.
To enable CI on main pushes:
- Open the repository on GitHub.
- Go to Settings → Secrets and variables → Actions.
- Switch to the Variables tab.
- Click New repository variable.
- Set Name to
CI_RUN_ON_MAINand Value totrue. - Save.
To disable again:
Delete the variable or change its value to anything other than true.
How it works:
The gate is applied inside push_ci_policy.sh, which the run-policy job invokes. When GITHUB_REF == refs/heads/main and CI_RUN_ON_MAIN != 'true', the job emits should_run=false and every downstream job is skipped.
| Variable value | Ref is main |
Behaviour |
|---|---|---|
| (not set / empty) | yes | CI skipped ✓ |
true |
yes | CI runs ✓ |
| any other value | yes | CI skipped ✓ |
| (any) | no | Unaffected (CI runs per branch rules) ✓ |