GitHub Actions π¬ΒΆ
This page catalogs every GitHub Actions workflow defined under the workflows directory. It lists each workflow together with a short description, its triggers, and the inputs it accepts.
For the CI flow (orchestrator stages, gates, fork-PR handling) see pipeline.md. For the repository variables that control CI behaviour see configuration.md. For the naming and shell-extraction conventions that every workflow file MUST follow see workflow.md. For the branch-prefix scopes referenced by the PR entry workflow see branch.md. For the mirror architecture referenced by the image workflows see mirror.md.
What GitHub Actions are πΒΆ
GitHub Actions is GitHubβs built-in CI/CD system. Each YAML file under .github/workflows/ is one workflow; a workflow contains one or more jobs, and each job runs a sequence of steps on a hosted or self-hosted runner. Workflows are started by triggers declared in the on: section. The most common triggers in this repository are:
push: fires when commits land on a branch.pull_request/pull_request_target: fires on PR lifecycle events (opened,synchronize,reopened,ready_for_review,closed,converted_to_draft). The_targetvariant runs with the base-branch secrets and is used to grant fork PRs controlled access to privileged steps.schedule: cron-based periodic runs (UTC).workflow_dispatch: manual run from the GitHub UI orgh workflow run, optionally with inputs.workflow_call: the workflow is a reusable workflow and is only started by another workflow that calls it viauses:.delete: fires when a branch or tag is deleted.
Workflows communicate through inputs (on workflow_call / workflow_dispatch), outputs, concurrency groups (which cancel or serialize runs with the same group key), and the GITHUB_TOKEN / repository secrets and variables. The entry points of this repository (entry-*.yml) translate external triggers into a call to the central call-orchestrator.yml. Most other workflows are reusable building blocks invoked from the orchestrator.
Workflow catalog πΒΆ
Trigger column legend: auto = fires automatically (push, pull_request, schedule, delete); manual = workflow_dispatch; reusable = workflow_call. Multiple values mean the workflow accepts any of them.
Entry points πͺΒΆ
Workflow |
Description |
Trigger |
Inputs |
|---|---|---|---|
entry-pr-change-orchestrate.yml: |
Detects PR scope from changed files + branch prefix, then conditionally calls the orchestrator. A maintainer |
auto ( |
none |
entry-push-latest.yml: |
Syncs |
auto ( |
none |
entry-manual-steer.yml: |
Manual dispatch of the full orchestrator for a chosen app whitelist. The |
manual |
|
entry-cancel-superseded.yml: |
Cancels the runs superseded by a newer one on the same branch or PR via the API, for the case where the concurrency group fails to reap its occupant and the newer run parks on |
auto ( |
none |
entry-pr-closed-cancel-workflows.yml: |
Cancels active workflow runs for a PR when it is closed or converted to draft. |
auto ( |
none |
entry-delete-branch.yml: |
Enters the push-entry concurrency group for the deleted branch so that any in-flight run on it is cancelled; a fallback step cancels remaining runs via the API. |
auto ( |
none |
Orchestration π΅ΒΆ
Workflow |
Description |
Trigger |
Inputs |
|---|---|---|---|
call-orchestrator.yml: |
Central coordinator. Runs fork-prereq wait, security, linting, CI image build, code tests, code-quality gate, DNS tests, mirror, deploy tests as a serial chain of chunk blocks (each chunkβs discover job renders the sweepβs plan table via |
reusable |
|
Security and linting π‘οΈπΒΆ
Workflow |
Description |
Trigger |
Inputs |
|---|---|---|---|
cron-security-codeql.yml: |
CodeQL static analysis. Invoked by call-orchestrator.yml so every CI run produces a single scan; additionally runs on a weekly cron so coverage does not drop when no pushes land on |
reusable, auto ( |
none |
cron-security-fuzz.yml: |
Runs the atheris harness _yaml_bootstrap.py for 15 minutes and uploads every crashing input as the |
auto ( |
none |
call-lint.yml: |
Runs |
reusable, manual |
none |
CI images π³ΒΆ
Workflow |
Description |
Trigger |
Inputs |
|---|---|---|---|
call-images-build-ci.yml: |
Builds the per-distro CI base images consumed by all test jobs. |
reusable |
|
cron-images-cleanup-ci.yml: |
Deletes CI images from GHCR older than N days. |
auto ( |
|
Image mirroring πͺΒΆ
Workflow |
Description |
Trigger |
Inputs |
|---|---|---|---|
call-images-mirror-missing.yml: |
Mirrors only the upstream images that are not yet in GHCR. Called from the orchestrator before deploy tests. |
reusable |
|
cron-images-mirror-all.yml: |
Full nightly mirror of every referenced upstream image into GHCR. |
auto ( |
|
entry-manual-mirror-cleanup.yml: |
Deletes GHCR mirror packages by prefix and visibility. Supports |
manual |
|
Code tests π§ͺΒΆ
Workflow |
Description |
Trigger |
Inputs |
|---|---|---|---|
call-test.yml: |
Runs |
reusable, manual |
none |
Infrastructure tests ππ¦π»π₯ΒΆ
Workflow |
Description |
Trigger |
Inputs |
|---|---|---|---|
call-test-dns.yml: |
Validates DNS resolution across target distributions. |
reusable, manual |
|
call-test-deploy.yml: |
Deploys one chunk of the sweep. Every matrix row is a single |
reusable |
|
call-test-install-make.yml: |
Validates the |
reusable |
none |
call-test-install-pkgmgr.yml: |
Validates installation via the upstream package manager. |
reusable |
none |
call-test-workspace.yml: |
Builds and exercises the dev-runtime image matrix. |
reusable, manual |
none |
Release and maintenance ππΒΆ
Workflow |
Description |
Trigger |
Inputs |
|---|---|---|---|
call-release-version.yml: |
Releases a specific version tag (build + publish). Called from |
reusable, manual |
|
cron-release-highest.yml: |
Scheduled backfill: finds the highest tag without a release and triggers |
auto ( |
none |
cron-cleanup-stale.yml: |
Marks and closes stale issues and PRs, deletes inactive branches, and prunes old GHCR CI image versions. |
auto ( |
none |
cron-update.yml: |
Updates Docker image versions and other pinned dependencies; opens an update PR via a GitHub App installation token so PR-lifecycle events fire on the resulting PR. Both jobs are gated behind the |
auto ( |
none |
entry-pr-open-dependabot-close.yml: |
Auto-closes Dependabot PRs while |
auto ( |
none |
Changing workflows βοΈΒΆ
Before adding or editing a workflow file:
Follow the naming schema and shell-extraction rules in workflow.md.
If the change affects the CI flow (stages, gates, order), also update pipeline.md.
If the change adds or removes a repository variable, also update configuration.md.
Update the relevant row in this page so the catalog stays accurate.