From 648a9a2938ebdd1e757ce4c65e2743468725342d Mon Sep 17 00:00:00 2001 From: Tony Hutter Date: Fri, 19 Dec 2025 19:57:19 -0800 Subject: [PATCH] CI: Test 2.4.x in qemu-test-repo-vm.sh, quick mode The qemu-test-repo-vm.sh script tests installs ZFS from different repos. Have it test from the new 2.4.x repos as well. Also add a checkbox to run in "lookup mode". This just does a quick lookup to see what version is installed in each repo. It does not do a test install and module load. It only takes 3min to run vs over an hour for the full version. Reviewed-by: Brian Behlendorf Reviewed-by: Tino Reichardt Signed-off-by: Tony Hutter Closes #18070 --- .../workflows/scripts/qemu-test-repo-vm.sh | 27 ++++++++++++++++--- .github/workflows/zfs-qemu-packages.yml | 13 ++++++++- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/.github/workflows/scripts/qemu-test-repo-vm.sh b/.github/workflows/scripts/qemu-test-repo-vm.sh index 722ee3d47..e5b9ee224 100755 --- a/.github/workflows/scripts/qemu-test-repo-vm.sh +++ b/.github/workflows/scripts/qemu-test-repo-vm.sh @@ -4,7 +4,11 @@ # # USAGE: # -# ./qemu-test-repo-vm [URL] +# ./qemu-test-repo-vm [--install] [URL] +# +# --lookup: When testing a repo, only lookup the latest package versions, +# don't try to install them. Installing all of them takes over +# an hour, so this is much quicker. # # URL: URL to use instead of http://download.zfsonlinux.org # If blank, use the default repo from zfs-release RPM. @@ -15,6 +19,13 @@ source /etc/os-release OS="$ID" VERSION="$VERSION_ID" + +LOOKUP="" +if [ -n "$1" ] && [ "$1" == "--lookup" ] ; then + LOOKUP=1 + shift +fi + ALTHOST="" if [ -n "$1" ] ; then ALTHOST="$1" @@ -42,6 +53,15 @@ function test_install { sudo sed -i "s;baseurl=http://download.zfsonlinux.org;baseurl=$host;g" /etc/yum.repos.d/zfs.repo fi + baseurl=$(grep -A 5 "\[$repo\]" /etc/yum.repos.d/zfs.repo | awk -F'=' '/baseurl=/{print $2; exit}') + + # Just do a version lookup - don't try to install any RPMs + if [ "$LOOKUP" == "1" ] ; then + package="$(dnf list $args zfs | tail -n 1 | awk '{print $2}')" + echo "$repo ${package} $baseurl" >> $SUMMARY + return + fi + if ! sudo dnf -y install $args zfs zfs-test ; then echo "$repo ${package}...[FAILED] $baseurl" >> $SUMMARY return @@ -54,7 +74,6 @@ function test_install { sudo zpool status # Print out repo name, rpm installed (kmod or dkms), and repo URL - baseurl=$(grep -A 5 "\[$repo\]" /etc/yum.repos.d/zfs.repo | awk -F'=' '/baseurl=/{print $2; exit}') package=$(sudo rpm -qa | grep zfs | grep -E 'kmod|dkms') echo "$repo $package $baseurl" >> $SUMMARY @@ -75,7 +94,7 @@ almalinux*) sudo rpm -qi zfs-release for i in zfs zfs-kmod zfs-testing zfs-testing-kmod zfs-latest \ zfs-latest-kmod zfs-legacy zfs-legacy-kmod zfs-2.2 \ - zfs-2.2-kmod zfs-2.3 zfs-2.3-kmod ; do + zfs-2.2-kmod zfs-2.3 zfs-2.3-kmod zfs-2.4 zfs-2.4-kmod; do test_install $i $ALTHOST done ;; @@ -83,7 +102,7 @@ fedora*) url='https://raw.githubusercontent.com/openzfs/openzfs-docs/refs/heads/master/docs/Getting%20Started/Fedora/index.rst' name=$(curl -Ls $url | grep 'dnf install' | grep -Eo 'zfs-release-[0-9]+-[0-9]+') sudo dnf -y install -y https://zfsonlinux.org/fedora/$name$(rpm --eval "%{dist}").noarch.rpm - for i in zfs zfs-latest zfs-legacy zfs-2.2 zfs-2.3 ; do + for i in zfs zfs-latest zfs-legacy zfs-2.2 zfs-2.3 zfs-2.4 ; do test_install $i $ALTHOST done ;; diff --git a/.github/workflows/zfs-qemu-packages.yml b/.github/workflows/zfs-qemu-packages.yml index 3c78d8470..7f8ba44b3 100644 --- a/.github/workflows/zfs-qemu-packages.yml +++ b/.github/workflows/zfs-qemu-packages.yml @@ -42,6 +42,12 @@ on: required: false default: "" description: "(optional) repo URL (blank: use http://download.zfsonlinux.org)" + lookup: + type: boolean + required: false + default: false + description: "(optional) do version lookup only on repo test" + concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true @@ -77,7 +83,12 @@ jobs: .github/workflows/scripts/qemu-prepare-for-build.sh mkdir -p /tmp/repo - ssh zfs@vm0 '$HOME/zfs/.github/workflows/scripts/qemu-test-repo-vm.sh' ${{ github.event.inputs.repo_url }} + EXTRA="" + if [ "${{ github.event.inputs.lookup }}" == 'true' ] ; then + EXTRA="--lookup" + fi + + ssh zfs@vm0 '$HOME/zfs/.github/workflows/scripts/qemu-test-repo-vm.sh' $EXTRA ${{ github.event.inputs.repo_url }} else EXTRA="" if [ -n "${{ github.event.inputs.patch_level }}" ] ; then