CI: Disable ZIP file artifacts, update versions

The GH artifacts action now lets you disable auto-zipping your
artifacts.  Previously, GH would always automatically put your
artifacts in a ZIP file.  This is annoying when your artifacts
are already in a tarball.

Also update the following action versions

checkout:		v4 -> v6
upload-artifact:	v4 -> v7
download-artifact:	v4 -> v8

Lastly, fix a issue where zfs-qmeu-packages now needs to power
cycle the VM.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Tony Hutter <hutter2@llnl.gov>
Closes #18411
This commit is contained in:
Tony Hutter
2026-04-14 13:20:46 -07:00
parent f4e5eb7e51
commit eec8b9b929
8 changed files with 54 additions and 30 deletions
+4 -3
View File
@@ -56,9 +56,10 @@ jobs:
- name: Prepare artifacts - name: Prepare artifacts
if: failure() && steps.CheckABI.outcome == 'failure' if: failure() && steps.CheckABI.outcome == 'failure'
run: | run: |
find -name *.abi | tar -cf abi_files.tar -T - find -name *.abi | tar -cjf abi_files.tar.bz2 -T -
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
if: failure() && steps.CheckABI.outcome == 'failure' if: failure() && steps.CheckABI.outcome == 'failure'
with: with:
name: New ABI files (use only if you're sure about interface changes) name: New ABI files (use only if you're sure about interface changes)
path: abi_files.tar path: abi_files.tar.bz2
archive: false
+1 -1
View File
@@ -28,7 +28,7 @@ jobs:
echo "MAKEFLAGS=-j$(nproc)" >> $GITHUB_ENV echo "MAKEFLAGS=-j$(nproc)" >> $GITHUB_ENV
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v6
- name: Initialize CodeQL - name: Initialize CodeQL
uses: github/codeql-action/init@v3 uses: github/codeql-action/init@v3
+20 -2
View File
@@ -13,16 +13,29 @@ source env.txt
mkdir -p $RESPATH mkdir -p $RESPATH
TARNAME=qemu-$OS
# check if building the module has failed # check if building the module has failed
if [ -z ${VMs:-} ]; then if [ -z ${VMs:-} ]; then
cd $RESPATH cd $RESPATH
echo ":exclamation: ZFS module didn't build successfully :exclamation:" \ echo ":exclamation: ZFS module didn't build successfully :exclamation:" \
| tee summary.txt | tee /tmp/summary.txt | tee summary.txt | tee /tmp/summary.txt
cp /var/tmp/*.txt . cp /var/tmp/*.txt .
tar cf /tmp/qemu-$OS.tar -C $RESPATH -h . || true
# rename /var/tmp/test_results to /var/tmp/qemu-$OS
mv $RESPATH $(dirname $RESPATH)/$TARNAME
tar cjf /tmp/$TARNAME.tar.bz2 -C $(dirname $RESPATH) -h $TARNAME || true
# move it back to /var/tmp/test_results (needed for next script)
mv $(dirname $RESPATH)/$TARNAME $RESPATH
exit 0 exit 0
fi fi
if ! grep -q vm /etc/hosts ; then
echo "No vm* hostnames, VMs probably didn't startup"
exit 0
fi
# build was okay # build was okay
BASE="$HOME/work/zfs/zfs" BASE="$HOME/work/zfs/zfs"
MERGE="$BASE/.github/workflows/scripts/merge_summary.awk" MERGE="$BASE/.github/workflows/scripts/merge_summary.awk"
@@ -121,4 +134,9 @@ if [ ! -s uname.txt ]; then
fi fi
# artifact ready now # artifact ready now
tar cf /tmp/qemu-$OS.tar -C $RESPATH -h . || true #
# rename /var/tmp/test_results to /var/tmp/qemu-$OS
mv $RESPATH $(dirname $RESPATH)/$TARNAME
tar cjf /tmp/$TARNAME.tar.bz2 -C $(dirname $RESPATH) -h $TARNAME || true
# move it back to /var/tmp/test_results (needed for next script)
mv $(dirname $RESPATH)/$TARNAME $RESPATH
@@ -33,7 +33,9 @@ function send2github() {
# first call, generate all summaries # first call, generate all summaries
if [ ! -f out-1.md ]; then if [ ! -f out-1.md ]; then
logfile="1" logfile="1"
for tarfile in Logs-functional-*/qemu-*.tar; do # The bz2 files are put into directories with the same name, like:
# "qemu-debian12.tar.bz2/qemu-debian12.tar.bz2"
for tarfile in qemu-*.tar.bz2/qemu-*.tar.bz2; do
rm -rf vm* *.txt rm -rf vm* *.txt
if [ ! -s "$tarfile" ]; then if [ ! -s "$tarfile" ]; then
output "\n## Functional Tests: unknown\n" output "\n## Functional Tests: unknown\n"
+2 -2
View File
@@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
steps: steps:
- name: Checkout smatch - name: Checkout smatch
uses: actions/checkout@v4 uses: actions/checkout@v6
with: with:
repository: error27/smatch repository: error27/smatch
ref: master ref: master
@@ -26,7 +26,7 @@ jobs:
cd $GITHUB_WORKSPACE/smatch cd $GITHUB_WORKSPACE/smatch
make -j$(nproc) make -j$(nproc)
- name: Checkout OpenZFS - name: Checkout OpenZFS
uses: actions/checkout@v4 uses: actions/checkout@v6
with: with:
ref: ${{ github.event.pull_request.head.sha }} ref: ${{ github.event.pull_request.head.sha }}
path: zfs path: zfs
+12 -11
View File
@@ -61,7 +61,7 @@ jobs:
os: ['almalinux8', 'almalinux9', 'almalinux10', 'fedora42', 'fedora43'] os: ['almalinux8', 'almalinux9', 'almalinux10', 'fedora42', 'fedora43']
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v6
with: with:
ref: ${{ github.event.pull_request.head.sha }} ref: ${{ github.event.pull_request.head.sha }}
@@ -73,7 +73,7 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | run: |
.github/workflows/scripts/qemu-3-deps.sh ${{ matrix.os }} .github/workflows/scripts/qemu-3-deps.sh --poweroff ${{ matrix.os }}
- name: Build modules or Test repo - name: Build modules or Test repo
run: | run: |
@@ -104,17 +104,18 @@ jobs:
run: | run: |
rsync -a zfs@vm0:/tmp/repo /tmp || true rsync -a zfs@vm0:/tmp/repo /tmp || true
.github/workflows/scripts/replace-dupes-with-symlinks.sh /tmp/repo .github/workflows/scripts/replace-dupes-with-symlinks.sh /tmp/repo
tar -cf ${{ matrix.os }}-repo.tar -C /tmp repo tar -cjf ${{ matrix.os }}-repo.tar.bz2 -C /tmp repo
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
id: artifact-upload id: artifact-upload
if: always() if: always()
with: with:
name: ${{ matrix.os }}-repo name: ${{ matrix.os }}-repo
path: ${{ matrix.os }}-repo.tar path: ${{ matrix.os }}-repo.tar.bz2
compression-level: 0 compression-level: 0
retention-days: 2 retention-days: 2
if-no-files-found: ignore if-no-files-found: ignore
archive: false
combine_repos: combine_repos:
if: always() if: always()
@@ -122,16 +123,16 @@ jobs:
name: "Results" name: "Results"
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/download-artifact@v4 - uses: actions/download-artifact@v8
id: artifact-download id: artifact-download
if: always() if: always()
- name: Test Summary - name: Test Summary
if: always() if: always()
run: | run: |
for i in $(find . -type f -iname "*.tar") ; do for i in $(find . -type f -iname "*.tar.bz2") ; do
tar -xf $i -C /tmp tar -xf $i -C /tmp
done done
tar -cf all-repo.tar -C /tmp repo tar -cjf all-repo.tar.bz2 -C /tmp repo
# If we're installing from a repo, print out the summary of the versions # If we're installing from a repo, print out the summary of the versions
# that got installed using Markdown. # that got installed using Markdown.
@@ -146,12 +147,12 @@ jobs:
done done
fi fi
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
id: artifact-upload2 id: artifact-upload2
if: always() if: always()
with: with:
name: all-repo name: all-repo
path: all-repo.tar path: all-repo.tar.bz2
compression-level: 0
retention-days: 5 retention-days: 5
if-no-files-found: ignore if-no-files-found: ignore
archive: false
+9 -7
View File
@@ -28,7 +28,7 @@ jobs:
test_os: ${{ steps.os.outputs.os }} test_os: ${{ steps.os.outputs.os }}
ci_type: ${{ steps.os.outputs.ci_type }} ci_type: ${{ steps.os.outputs.ci_type }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v6
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Generate OS config and CI type - name: Generate OS config and CI type
@@ -104,7 +104,7 @@ jobs:
os: ${{ fromJson(needs.test-config.outputs.test_os) }} os: ${{ fromJson(needs.test-config.outputs.test_os) }}
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v6
with: with:
ref: ${{ github.event.pull_request.head.sha }} ref: ${{ github.event.pull_request.head.sha }}
@@ -139,12 +139,13 @@ jobs:
timeout-minutes: 10 timeout-minutes: 10
run: .github/workflows/scripts/qemu-7-prepare.sh run: .github/workflows/scripts/qemu-7-prepare.sh
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
id: artifact-upload id: artifact-upload
if: always() if: always()
with: with:
name: Logs-functional-${{ matrix.os }} name: Logs-functional-${{ matrix.os }}
path: /tmp/qemu-${{ matrix.os }}.tar path: /tmp/qemu-${{ matrix.os }}.tar.bz2
archive: false
if-no-files-found: ignore if-no-files-found: ignore
- name: Test Summary - name: Test Summary
@@ -158,10 +159,10 @@ jobs:
needs: [ qemu-vm ] needs: [ qemu-vm ]
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v6
with: with:
ref: ${{ github.event.pull_request.head.sha }} ref: ${{ github.event.pull_request.head.sha }}
- uses: actions/download-artifact@v4 - uses: actions/download-artifact@v8
- name: Generating summary - name: Generating summary
run: .github/workflows/scripts/qemu-9-summary-page.sh run: .github/workflows/scripts/qemu-9-summary-page.sh
- name: Generating summary... - name: Generating summary...
@@ -200,7 +201,8 @@ jobs:
run: .github/workflows/scripts/qemu-9-summary-page.sh 18 run: .github/workflows/scripts/qemu-9-summary-page.sh 18
- name: Generating summary... - name: Generating summary...
run: .github/workflows/scripts/qemu-9-summary-page.sh 19 run: .github/workflows/scripts/qemu-9-summary-page.sh 19
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
with: with:
name: Summary Files name: Summary Files
path: out-* path: out-*
archive: true
+3 -3
View File
@@ -15,7 +15,7 @@ jobs:
WORK_DIR: /mnt/zloop WORK_DIR: /mnt/zloop
CORE_DIR: /mnt/zloop/cores CORE_DIR: /mnt/zloop/cores
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v6
with: with:
ref: ${{ github.event.pull_request.head.sha }} ref: ${{ github.event.pull_request.head.sha }}
- name: Install dependencies - name: Install dependencies
@@ -61,7 +61,7 @@ jobs:
if: failure() if: failure()
run: | run: |
cat $CORE_DIR/*/ztest.zdb cat $CORE_DIR/*/ztest.zdb
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
if: failure() if: failure()
with: with:
name: Logs name: Logs
@@ -69,7 +69,7 @@ jobs:
/mnt/zloop/*/ /mnt/zloop/*/
!/mnt/zloop/cores/*/vdev/ !/mnt/zloop/cores/*/vdev/
if-no-files-found: ignore if-no-files-found: ignore
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
if: failure() if: failure()
with: with:
name: Pool files name: Pool files