Skip to content

ci: Run full tests only on merge queue, add ci/tier-1 and ci/merge labels#2173

Merged
cgwalters merged 2 commits intobootc-dev:mainfrom
cgwalters:mergequeue
Apr 27, 2026
Merged

ci: Run full tests only on merge queue, add ci/tier-1 and ci/merge labels#2173
cgwalters merged 2 commits intobootc-dev:mainfrom
cgwalters:mergequeue

Conversation

@cgwalters
Copy link
Copy Markdown
Collaborator

@cgwalters cgwalters commented Apr 27, 2026

Now that we have a merge queue, change things so we only run cheaper jobs on PRs by default. It's possible to opt in to heavier CI via labels.

Part of bootc-dev/infra#143

Assisted-by: OpenCode (Claude Sonnet 4.5)

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Note

Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported.

@bootc-bot bootc-bot Bot requested a review from ckyrouac April 27, 2026 15:37
@cgwalters cgwalters marked this pull request as ready for review April 27, 2026 15:51
@cgwalters
Copy link
Copy Markdown
Collaborator Author

OK I had an agent test this out in https://github.com/bootc-dev/ci-sandbox/ and it seems to work well!

ckyrouac
ckyrouac previously approved these changes Apr 27, 2026
Copy link
Copy Markdown
Collaborator

@ckyrouac ckyrouac left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice!

@cgwalters cgwalters added the ci/tier-1 Run CI for tier-1 OS (centos-10) only label Apr 27, 2026
Enable GitHub merge queues for bootc. Heavy integration tests (multi-OS
matrix, Testing Farm, COPR builds) are expensive and should not block
every PR, but must pass before merging.

GitHub Actions CI now has three tiers:
- Plain PR: only cheap/fast jobs (build, unit tests, docs). Heavy jobs
  are skipped but the `required-checks` sentinel still passes.
- `ci/tier-1` label: adds centos-10 matrix for package+integration+upgrade.
- `ci/merge` label or merge_group: full OS matrix, identical to what the
  merge queue runs.

A `compute-ci-level` job emits dynamic JSON matrices based on the
trigger/labels; matrix jobs consume these via `fromJson()`. The
`required-checks` sentinel accepts `skipped` as success and uses explicit
jq failure reporting instead of the fragile `!`-negation pattern.

Packit (COPR builds + Testing Farm) is similarly label-gated: ci/tier-1
for primary targets (centos-10, fedora-44), ci/merge for the full set.
Packit is NOT wired into the merge queue as a required check because it
embeds the branch name in its check names
(`rpm-build:gh-readonly-queue/main/...:target`), making it impractical
to enforce via GitHub rulesets.

Ref: bootc-dev/infra#143
Assisted-by: OpenCode (Claude Sonnet 4.6)
Signed-off-by: Colin Walters <walters@verbum.org>
s390x builds are currently broken. Drop them across all copr_build
jobs until the issue is resolved.

Assisted-by: OpenCode (Claude Sonnet 4.5)
Signed-off-by: Colin Walters <walters@verbum.org>
@cgwalters cgwalters merged commit e07abd0 into bootc-dev:main Apr 27, 2026
27 of 28 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/tier-1 Run CI for tier-1 OS (centos-10) only

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants