| name | pr-definition-of-done |
| description | Use before opening or updating a konflux-clamav pull request, or when GitHub Actions or Konflux pipeline checks fail. Covers commits, formatting, lockfiles, and expected CI outcomes. |
PR Definition of Done
Overview
A pull request to main runs GitHub Actions and a Konflux hermetic build for component clamav-db-hermetic. Merging triggers the push pipeline, which publishes a durable image tag with refreshed virus definitions.
When to Use
- Before pushing or marking a PR ready for review
- Mapping a failed check to a required fix
- Reviewing someone else's change
Pre-push checklist
Commits
Edits in this repository
Image and build inputs
Dependencies and Tekton
Pull request text
Konflux on forks
CI that runs on pull requests
GitHub Actions
| Workflow | Path | Jobs | Purpose |
|---|
| Agentready | .github/workflows/agentready.yaml | agentready | Repo readiness per .agentready/config/.agentready-config.yaml |
| Validate PRs | .github/workflows/pr-checks.yaml | yaml-linter, dockerfile-linter, shellcheck, gitlint | Lint YAML (yamllint), Dockerfile (hadolint), shell scripts (shellcheck), and commit messages (gitlint) |
There is no make test or unit test suite in this repository. Linting is enforced via pr-checks.yaml.
Konflux Tekton
Defined in .tekton/clamav-hermetic-pull-request.yaml:
| Stage | Work |
|---|
| Prefetch | fetch-db-data → prefetch-dependencies |
| Build | build-images (x86_64, arm64) → build-image-index |
| Scans | Clair, ClamAV, SAST tasks, RPM signature, preflight, deprecated base |
| Metadata | apply-tags, push-dockerfile |
PR images are tagged on-pr-{{revision}} and expire after five days.
Integration test
integration-tests/clamav-self-test.yaml exercises /selftest.sh inside the built image after the component build succeeds in Konflux integration testing.
Reviewers
See .github/CODEOWNERS for automatic review requests.
Downstream impact
Consumers use this image from the clamav-scan Tekton task. Changes to entrypoint (/start-clamd.sh), socket path (/var/run/clamd.scan/clamd.sock), or database layout under /var/lib/clamav/ can break existing pipelines.
Common mistakes
| Mistake | Fix |
|---|
rpms.in.yaml without lock refresh | Regenerate with rpm-lockfile-prototype or merge MintMaker lockfile PR |
| Only one oc tarball in fetch script | Download every arch in fetch-db-and-tools.sh |
| SBOM/Conforma failure | ADDITIONAL_BASE_IMAGES includes SCRIPT_RUNNER_IMAGE_REFERENCE in .tekton/ |
| Unsigned commit | git commit -s |
| Pipeline never started | /ok-to-test |
Local docker build assumed equal to CI | Reproduce fetch-db-data + Hermeto prefetch or rely on Konflux PR build |