From a3b8fee46eefd2cbb4c3ef4cae85b60781c9bd3c Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Wed, 19 Mar 2025 12:39:18 +0100 Subject: [PATCH] fmf: Download rpms manually instead of going via repositories This both makes the script more independent, and allows us to add support for CBS (CentOS Community Build System) at the same time. --- test/fmf/integration-tests/main.fmf | 3 ++ test/fmf/integration-tests/test.sh | 63 ++++++++++------------------- 2 files changed, 25 insertions(+), 41 deletions(-) diff --git a/test/fmf/integration-tests/main.fmf b/test/fmf/integration-tests/main.fmf index a1686c09c3d..e7a38d3c009 100644 --- a/test/fmf/integration-tests/main.fmf +++ b/test/fmf/integration-tests/main.fmf @@ -8,3 +8,6 @@ require: - distribution-gpg-keys - dnf - git-core + - koji + - centos-packager + - copr-cli diff --git a/test/fmf/integration-tests/test.sh b/test/fmf/integration-tests/test.sh index e57a03026e3..f59ab9a97f2 100755 --- a/test/fmf/integration-tests/test.sh +++ b/test/fmf/integration-tests/test.sh @@ -17,25 +17,25 @@ echo "Clock source: $(cat /sys/devices/system/clocksource/clocksource0/current_c sysctl fs.inotify.max_user_watches=65536 || true sysctl fs.inotify.max_user_instances=1024 || true -if [[ -n "${PACKIT_TARGET_URL:-}" ]]; then - # Prepare systemd source tree - git clone "$PACKIT_TARGET_URL" systemd --branch "$PACKIT_TARGET_BRANCH" - pushd systemd - - # If we're running in a pull request job, merge the remote branch into the current main - if [[ -n "${PACKIT_SOURCE_URL:-}" ]]; then - git remote add pr "${PACKIT_SOURCE_URL:?}" - git fetch pr "${PACKIT_SOURCE_BRANCH:?}" - git merge "pr/$PACKIT_SOURCE_BRANCH" - fi - - git log --oneline -5 +if [[ -n "${KOJI_TASK_ID:-}" ]]; then + koji download-task --noprogress --arch="src,noarch,$(rpm --eval '%{_arch}')" "$KOJI_TASK_ID" +elif [[ -n "${CBS_TASK_ID:-}" ]]; then + cbs download-task --noprogress --arch="src,noarch,$(rpm --eval '%{_arch}')" "$CBS_TASK_ID" +elif [[ -n "${PACKIT_SRPM_URL:-}" ]]; then + COPR_BUILD_ID="$(basename "$(dirname "$PACKIT_SRPM_URL")")" + COPR_CHROOT="$(basename "$(dirname "$(dirname "$PACKIT_BUILD_LOG_URL")")")" + copr download-build --rpms --chroot "$COPR_CHROOT" "$COPR_BUILD_ID" + mv "$COPR_CHROOT"/* . else - echo "Not running within packit or Fedora CI" + echo "Not running within packit and no CBS/koji task ID provided" exit 1 fi -# Now prepare mkosi, possibly at the same version required by the systemd repo +mkdir systemd +rpm2cpio ./systemd-*.src.rpm | cpio --to-stdout --extract './systemd-*.tar.gz' | tar xz --strip-components=1 -C systemd +pushd systemd + +# Now prepare mkosi at the same version required by the systemd repo. git clone https://github.com/systemd/mkosi mkosi_hash="$(grep systemd/mkosi@ .github/workflows/mkosi.yml | sed "s|.*systemd/mkosi@||g")" git -C mkosi checkout "$mkosi_hash" @@ -47,11 +47,18 @@ export PATH="$PWD/mkosi/bin:$PATH" tee mkosi.local.conf <> /etc/yum.repos.d/copr_build* - - # Disable mkosi's own repository logic - touch /etc/yum.repos.d/mkosi.repo -fi - # If we don't have KVM, skip running in qemu, as it's too slow. But try to load the module first. modprobe kvm || true if [[ ! -e /dev/kvm ]]; then -- 2.47.3