diff --git a/test/fmf/integration-tests/main.fmf b/test/fmf/integration-tests/main.fmf index a1686c09c3..e7a38d3c00 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 e57a03026e..f59ab9a97f 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