ci: Add Packit CI with RPM builds and TMT integration tests
authorXiaofeng Wang <henrywangxf@me.com>
Fri, 20 Mar 2026 08:50:58 +0000 (16:50 +0800)
committerXiaofeng Wang <henrywangxf@me.com>
Mon, 23 Mar 2026 01:30:46 +0000 (09:30 +0800)
commitb0cd80d9e3d69f435f09b32523647c7db91b5d6c
tree1f7cfd7f89d6478b76ba1009456b5087cb355c3a
parentc13d65041fa9c273720efdd16dc6fd9d2e5ff9e2
ci: Add Packit CI with RPM builds and TMT integration tests

Add Packit-based CI pipeline that builds RPMs via COPR and runs TMT
integration tests on bootc image-mode systems. This follows the
bootc-dev/bootc pattern of per-plan VM isolation using bcvk.

Key changes:
- Dockerfile: Add rpmbuild stage, use RPM overlay for rootfs, run
  provision-derived.sh for VM provisioning (cloud-init, rsync, etc.)
- Justfile: Add package target, test-tmt target with bcvk per-plan VMs,
  longer SSH wait for cloud-init first boot
- .github/workflows/bootc.yaml: Split into unit-tests and integration
  jobs, archive TMT logs with PR number in artifact name
- .packit.yaml: COPR builds + TMT tests for centos-stream-9/10 and
  fedora-43/44 on x86_64/aarch64
- tmt/: FMF test plans and shell-based tests (booted verification,
  privileged ostree tests) translated from Rust integration tests
- hack/: Packit provisioning scripts to convert package-mode VMs to
  image-mode via bootc install to-filesystem

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Xiaofeng Wang <henrywangxf@me.com>
13 files changed:
.fmf/version [new file with mode: 0644]
.github/workflows/bootc.yaml
.gitignore [new file with mode: 0644]
.packit.yaml [new file with mode: 0644]
Dockerfile
Justfile
ci/packit-fix-spec.sh [new file with mode: 0755]
hack/Containerfile.packit [new file with mode: 0644]
hack/packages.txt [new file with mode: 0644]
hack/provision-derived.sh [new file with mode: 0755]
hack/provision-packit.sh [new file with mode: 0755]
tmt/plans/integration.fmf [new file with mode: 0644]
tmt/tests/tests.fmf [new file with mode: 0644]