Skip to content

Latest commit

 

History

History
84 lines (62 loc) · 4.5 KB

ci.md

File metadata and controls

84 lines (62 loc) · 4.5 KB

CI Systems Overview

This repo uses three CI systems simultaneously. Each handles a different concern:

System What it does Config location
GitHub Actions Code quality, static analysis, security scans, docs, notifications .github/workflows/
Konflux / Pipelines-as-Code Container image builds, integration testing .tekton/
Prow / Tide Merge automation, label management (/lgtm, /approve, /hold) openshift/release

Detailed docs for each:

Slash commands

All three systems use PR comment commands, and some commands are consumed by multiple systems simultaneously. Prow and PaC both watch for /retest and /test, responding independently based on their own job/pipeline registries.

Common commands (shared between Prow and PaC)

Command Prow response PaC/Konflux response
/retest (bare) Retriggers all failed Prow presubmit jobs Re-runs CEL-matched Konflux pipelines; intended failed-only but often reruns all matched (including passed) — #2580; see konflux.md
/test (bare) Retriggers all failed Prow presubmit jobs Re-runs pipelines whose CEL pathChanged() matches the PR (subset, not all 22); see konflux.md
/retest <name> Retriggers the named Prow job if it failed Triggers the named PaC pipeline regardless of previous outcome — even if it never ran on this PR
/test <name> Same as /retest <name> for Prow Same as /retest <name> for PaC
/ok-to-test Trusts a fork PR for Prow CI Trusts a fork PR for PaC pipelines

Since Prow presubmit jobs are no longer configured for main, Prow responds to /test and /retest with "No presubmit jobs available" while PaC proceeds to trigger the matching pipeline.

Prow-only commands (merge automation)

These commands are handled exclusively by Prow. See docs/tide.md for details.

Command Effect
/lgtm Adds lgtm label (required for merge)
/approve Adds approved label (required for merge)
/hold Adds do-not-merge/hold to block merge
/override <context> Marks a failing context as overridden (OWNERS approvers or admins only)

Clicking the GitHub "Approve" review button triggers /lgtm and /approve automatically for OWNERS approvers. See the review mapping table.

Konflux-only commands (build triggers)

These commands are handled exclusively by PaC. See docs/konflux.md for the full list.

Command Effect
/kfbuild-all or /build-konflux Triggers all PR build pipelines
/build-<type> Triggers a specific image build (e.g. /build-base-cpu, /build-runtime-pytorch-cuda)
/group-test Triggers the integration test pipeline (ODH only)

/build-* and /kfbuild-all bypass CEL via on-comment; bare /test and /retest do not — see konflux.md.

RHDS also supports label-based triggers (kfbuild-all, kfbuild-cuda, etc.).

GitHub Actions

GitHub Actions workflows are not triggered by slash commands. They run automatically on PR events based on on: triggers in .github/workflows/*.yaml. To re-run a failed GHA workflow, use the GitHub UI "Re-run" button on the Actions or Checks tab.

How the systems interact

PR opened/updated
  ├── GitHub Actions: runs automatically (code-quality, security, etc.)
  ├── Konflux/PaC: runs if pathChanged() matches .tekton/ CEL expressions
  │                 or triggered manually via /kfbuild-all, /build-*, /test, /retest
  └── Prow/Tide: watches for label state
                  └── When lgtm + approved + all checks green → auto-merge

Tide considers checks from all systems when deciding to merge. A failing GitHub Actions workflow or a failing Konflux pipeline will both block Tide from merging, unless overridden with /override <context-name>.