mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-02-12 10:21:12 +03:00
Update workflows
Update the GitHub actions workflows using a subset of the changes
from the master branch, commit 620a977f22
. Cherry-picking each
relevant commit would have resulted in a large number of conflicts
so this change only applies a minimal set of useful updates.
- Added build-dependencies.txt and checkstyle-dependencies.txt
- Added reclaim_disk_space.sh script
- Minor changes to build steps
- Reduced ztest run time
- checkbashisms, mandoc, and cppcheck were not included to
avoid additional backports
- Add exceptions for shellcheck
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
parent
1d2aea7711
commit
4f6e0ca117
57
.github/workflows/build-dependencies.txt
vendored
Normal file
57
.github/workflows/build-dependencies.txt
vendored
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
acl
|
||||||
|
alien
|
||||||
|
attr
|
||||||
|
autoconf
|
||||||
|
bc
|
||||||
|
build-essential
|
||||||
|
curl
|
||||||
|
dbench
|
||||||
|
debhelper-compat
|
||||||
|
dh-python
|
||||||
|
dkms
|
||||||
|
fakeroot
|
||||||
|
fio
|
||||||
|
gdb
|
||||||
|
gdebi
|
||||||
|
git
|
||||||
|
ksh
|
||||||
|
lcov
|
||||||
|
libacl1-dev
|
||||||
|
libaio-dev
|
||||||
|
libattr1-dev
|
||||||
|
libblkid-dev
|
||||||
|
libcurl4-openssl-dev
|
||||||
|
libdevmapper-dev
|
||||||
|
libelf-dev
|
||||||
|
libffi-dev
|
||||||
|
libmount-dev
|
||||||
|
libpam0g-dev
|
||||||
|
libselinux1-dev
|
||||||
|
libssl-dev
|
||||||
|
libtool
|
||||||
|
libudev-dev
|
||||||
|
linux-headers-generic
|
||||||
|
lsscsi
|
||||||
|
mdadm
|
||||||
|
nfs-kernel-server
|
||||||
|
pamtester
|
||||||
|
parted
|
||||||
|
po-debconf
|
||||||
|
python3
|
||||||
|
python3-all-dev
|
||||||
|
python3-cffi
|
||||||
|
python3-dev
|
||||||
|
python3-packaging
|
||||||
|
python3-pip
|
||||||
|
python3-setuptools
|
||||||
|
python3-sphinx
|
||||||
|
rng-tools-debian
|
||||||
|
rsync
|
||||||
|
samba
|
||||||
|
sysstat
|
||||||
|
uuid-dev
|
||||||
|
watchdog
|
||||||
|
wget
|
||||||
|
xfslibs-dev
|
||||||
|
xz-utils
|
||||||
|
zlib1g-dev
|
2
.github/workflows/checkstyle-dependencies.txt
vendored
Normal file
2
.github/workflows/checkstyle-dependencies.txt
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pax-utils
|
||||||
|
shellcheck
|
16
.github/workflows/checkstyle.yaml
vendored
16
.github/workflows/checkstyle.yaml
vendored
@ -17,12 +17,16 @@ jobs:
|
|||||||
sudo apt-mark hold grub-efi-amd64-signed
|
sudo apt-mark hold grub-efi-amd64-signed
|
||||||
sudo apt-get update --fix-missing
|
sudo apt-get update --fix-missing
|
||||||
sudo apt-get upgrade
|
sudo apt-get upgrade
|
||||||
sudo apt-get install --yes -qq build-essential autoconf libtool gawk alien fakeroot linux-headers-$(uname -r)
|
sudo xargs --arg-file=${{ github.workspace }}/.github/workflows/build-dependencies.txt apt-get install -qq
|
||||||
sudo apt-get install --yes -qq zlib1g-dev uuid-dev libattr1-dev libblkid-dev libselinux-dev libudev-dev libssl-dev python-dev python-setuptools python-cffi python3 python3-dev python3-setuptools python3-cffi
|
sudo xargs --arg-file=${{ github.workspace }}/.github/workflows/checkstyle-dependencies.txt apt-get install -qq
|
||||||
# packages for tests
|
sudo python3 -m pip install --quiet flake8
|
||||||
sudo apt-get install --yes -qq parted lsscsi ksh attr acl nfs-kernel-server fio
|
sudo apt-get clean
|
||||||
sudo apt-get install --yes -qq mandoc cppcheck pax-utils devscripts
|
|
||||||
sudo -E pip --quiet install flake8
|
# confirm that the tools are installed
|
||||||
|
# the build system doesn't fail when they are not
|
||||||
|
flake8 --version
|
||||||
|
scanelf --version
|
||||||
|
shellcheck --version
|
||||||
- name: Prepare
|
- name: Prepare
|
||||||
run: |
|
run: |
|
||||||
sh ./autogen.sh
|
sh ./autogen.sh
|
||||||
|
23
.github/workflows/scripts/reclaim_disk_space.sh
vendored
Executable file
23
.github/workflows/scripts/reclaim_disk_space.sh
vendored
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
# remove 4GiB of images
|
||||||
|
sudo systemd-run docker system prune --force --all --volumes
|
||||||
|
|
||||||
|
# remove unused software
|
||||||
|
sudo systemd-run --wait rm -rf \
|
||||||
|
"$AGENT_TOOLSDIRECTORY" \
|
||||||
|
/opt/* \
|
||||||
|
/usr/local/* \
|
||||||
|
/usr/share/az* \
|
||||||
|
/usr/share/dotnet \
|
||||||
|
/usr/share/gradle* \
|
||||||
|
/usr/share/miniconda \
|
||||||
|
/usr/share/swift \
|
||||||
|
/var/lib/gems \
|
||||||
|
/var/lib/mysql \
|
||||||
|
/var/lib/snapd
|
||||||
|
|
||||||
|
# trim the cleaned space
|
||||||
|
sudo fstrim /
|
31
.github/workflows/zfs-tests-functional.yml
vendored
31
.github/workflows/zfs-tests-functional.yml
vendored
@ -21,16 +21,8 @@ jobs:
|
|||||||
sudo apt-mark hold grub-efi-amd64-signed
|
sudo apt-mark hold grub-efi-amd64-signed
|
||||||
sudo apt-get update --fix-missing
|
sudo apt-get update --fix-missing
|
||||||
sudo apt-get upgrade
|
sudo apt-get upgrade
|
||||||
sudo apt-get install --yes -qq build-essential autoconf libtool gdb lcov \
|
sudo xargs --arg-file=${{ github.workspace }}/.github/workflows/build-dependencies.txt apt-get install -qq
|
||||||
git alien fakeroot wget curl bc fio acl \
|
sudo apt-get clean
|
||||||
sysstat mdadm lsscsi parted gdebi attr dbench watchdog ksh \
|
|
||||||
nfs-kernel-server samba rng-tools xz-utils \
|
|
||||||
zlib1g-dev uuid-dev libblkid-dev libselinux-dev \
|
|
||||||
xfslibs-dev libattr1-dev libacl1-dev libudev-dev libdevmapper-dev \
|
|
||||||
libssl-dev libffi-dev libaio-dev libelf-dev libmount-dev \
|
|
||||||
libpam0g-dev pamtester python-dev python-setuptools python-cffi \
|
|
||||||
python3 python3-dev python3-setuptools python3-cffi python3-packaging \
|
|
||||||
libcurl4-openssl-dev
|
|
||||||
- name: Autogen.sh
|
- name: Autogen.sh
|
||||||
run: |
|
run: |
|
||||||
sh autogen.sh
|
sh autogen.sh
|
||||||
@ -59,12 +51,13 @@ jobs:
|
|||||||
sudo udevadm control --reload-rules
|
sudo udevadm control --reload-rules
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
# Workaround to provide additional free space for testing.
|
- name: Clear the kernel ring buffer
|
||||||
# https://github.com/actions/virtual-environments/issues/2840
|
run: |
|
||||||
sudo rm -rf /usr/share/dotnet
|
sudo dmesg -c >/var/tmp/dmesg-prerun
|
||||||
sudo rm -rf /opt/ghc
|
- name: Reclaim and report disk space
|
||||||
sudo rm -rf "/usr/local/share/boost"
|
run: |
|
||||||
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
|
${{ github.workspace }}/.github/workflows/scripts/reclaim_disk_space.sh
|
||||||
|
df -h /
|
||||||
- name: Tests
|
- name: Tests
|
||||||
run: |
|
run: |
|
||||||
/usr/share/zfs/zfs-tests.sh -vR -s 3G
|
/usr/share/zfs/zfs-tests.sh -vR -s 3G
|
||||||
@ -74,7 +67,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
RESULTS_PATH=$(readlink -f /var/tmp/test_results/current)
|
RESULTS_PATH=$(readlink -f /var/tmp/test_results/current)
|
||||||
sudo dmesg > $RESULTS_PATH/dmesg
|
sudo dmesg > $RESULTS_PATH/dmesg
|
||||||
sudo cp /var/log/syslog $RESULTS_PATH/
|
sudo cp /var/log/syslog /var/tmp/dmesg-prerun $RESULTS_PATH/
|
||||||
sudo chmod +r $RESULTS_PATH/*
|
sudo chmod +r $RESULTS_PATH/*
|
||||||
# Replace ':' in dir names, actions/upload-artifact doesn't support it
|
# Replace ':' in dir names, actions/upload-artifact doesn't support it
|
||||||
for f in $(find /var/tmp/test_results -name '*:*'); do mv "$f" "${f//:/__}"; done
|
for f in $(find /var/tmp/test_results -name '*:*'); do mv "$f" "${f//:/__}"; done
|
||||||
@ -82,5 +75,7 @@ jobs:
|
|||||||
if: failure()
|
if: failure()
|
||||||
with:
|
with:
|
||||||
name: Test logs Ubuntu-${{ matrix.os }}
|
name: Test logs Ubuntu-${{ matrix.os }}
|
||||||
path: /var/tmp/test_results/20*/
|
path: |
|
||||||
|
/var/tmp/test_results/*
|
||||||
|
!/var/tmp/test_results/current
|
||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
|
33
.github/workflows/zfs-tests-sanity.yml
vendored
33
.github/workflows/zfs-tests-sanity.yml
vendored
@ -17,16 +17,8 @@ jobs:
|
|||||||
sudo apt-mark hold grub-efi-amd64-signed
|
sudo apt-mark hold grub-efi-amd64-signed
|
||||||
sudo apt-get update --fix-missing
|
sudo apt-get update --fix-missing
|
||||||
sudo apt-get upgrade
|
sudo apt-get upgrade
|
||||||
sudo apt-get install --yes -qq build-essential autoconf libtool gdb lcov \
|
sudo xargs --arg-file=${{ github.workspace }}/.github/workflows/build-dependencies.txt apt-get install -qq
|
||||||
git alien fakeroot wget curl bc fio acl \
|
sudo apt-get clean
|
||||||
sysstat mdadm lsscsi parted gdebi attr dbench watchdog ksh \
|
|
||||||
nfs-kernel-server samba rng-tools xz-utils \
|
|
||||||
zlib1g-dev uuid-dev libblkid-dev libselinux-dev \
|
|
||||||
xfslibs-dev libattr1-dev libacl1-dev libudev-dev libdevmapper-dev \
|
|
||||||
libssl-dev libffi-dev libaio-dev libelf-dev libmount-dev \
|
|
||||||
libpam0g-dev pamtester python-dev python-setuptools python-cffi \
|
|
||||||
python3 python3-dev python3-setuptools python3-cffi python3-packaging \
|
|
||||||
libcurl4-openssl-dev
|
|
||||||
- name: Autogen.sh
|
- name: Autogen.sh
|
||||||
run: |
|
run: |
|
||||||
sh autogen.sh
|
sh autogen.sh
|
||||||
@ -55,12 +47,13 @@ jobs:
|
|||||||
sudo udevadm control --reload-rules
|
sudo udevadm control --reload-rules
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
# Workaround to provide additional free space for testing.
|
- name: Clear the kernel ring buffer
|
||||||
# https://github.com/actions/virtual-environments/issues/2840
|
run: |
|
||||||
sudo rm -rf /usr/share/dotnet
|
sudo dmesg -c >/var/tmp/dmesg-prerun
|
||||||
sudo rm -rf /opt/ghc
|
- name: Reclaim and report disk space
|
||||||
sudo rm -rf "/usr/local/share/boost"
|
run: |
|
||||||
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
|
${{ github.workspace }}/.github/workflows/scripts/reclaim_disk_space.sh
|
||||||
|
df -h /
|
||||||
- name: Tests
|
- name: Tests
|
||||||
run: |
|
run: |
|
||||||
/usr/share/zfs/zfs-tests.sh -vR -s 3G -r sanity
|
/usr/share/zfs/zfs-tests.sh -vR -s 3G -r sanity
|
||||||
@ -70,13 +63,15 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
RESULTS_PATH=$(readlink -f /var/tmp/test_results/current)
|
RESULTS_PATH=$(readlink -f /var/tmp/test_results/current)
|
||||||
sudo dmesg > $RESULTS_PATH/dmesg
|
sudo dmesg > $RESULTS_PATH/dmesg
|
||||||
sudo cp /var/log/syslog $RESULTS_PATH/
|
sudo cp /var/log/syslog /var/tmp/dmesg-prerun $RESULTS_PATH/
|
||||||
sudo chmod +r $RESULTS_PATH/*
|
sudo chmod +r $RESULTS_PATH/*
|
||||||
# Replace ':' in dir names, actions/upload-artifact doesn't support it
|
# Replace ':' in dir names, actions/upload-artifact doesn't support it
|
||||||
for f in $(find /var/tmp/test_results -name '*:*'); do mv "$f" "${f//:/__}"; done
|
for f in $(find /var/tmp/test_results -name '*:*'); do mv "$f" "${f//:/__}"; done
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v3
|
||||||
if: failure()
|
if: failure()
|
||||||
with:
|
with:
|
||||||
name: Test logs
|
name: Test logs Ubuntu-${{ matrix.os }}
|
||||||
path: /var/tmp/test_results/20*/
|
path: |
|
||||||
|
/var/tmp/test_results/*
|
||||||
|
!/var/tmp/test_results/current
|
||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
|
15
.github/workflows/zloop.yml
vendored
15
.github/workflows/zloop.yml
vendored
@ -19,14 +19,8 @@ jobs:
|
|||||||
sudo apt-mark hold grub-efi-amd64-signed
|
sudo apt-mark hold grub-efi-amd64-signed
|
||||||
sudo apt-get update --fix-missing
|
sudo apt-get update --fix-missing
|
||||||
sudo apt-get upgrade
|
sudo apt-get upgrade
|
||||||
sudo apt-get install --yes -qq build-essential autoconf libtool gdb \
|
sudo xargs --arg-file=${{ github.workspace }}/.github/workflows/build-dependencies.txt apt-get install -qq
|
||||||
git alien fakeroot \
|
sudo apt-get clean
|
||||||
zlib1g-dev uuid-dev libblkid-dev libselinux-dev \
|
|
||||||
xfslibs-dev libattr1-dev libacl1-dev libudev-dev libdevmapper-dev \
|
|
||||||
libssl-dev libffi-dev libaio-dev libelf-dev libmount-dev \
|
|
||||||
libpam0g-dev \
|
|
||||||
python-dev python-setuptools python-cffi python-packaging \
|
|
||||||
python3 python3-dev python3-setuptools python3-cffi python3-packaging
|
|
||||||
- name: Autogen.sh
|
- name: Autogen.sh
|
||||||
run: |
|
run: |
|
||||||
sh autogen.sh
|
sh autogen.sh
|
||||||
@ -47,8 +41,9 @@ jobs:
|
|||||||
- name: Tests
|
- name: Tests
|
||||||
run: |
|
run: |
|
||||||
sudo mkdir -p $TEST_DIR
|
sudo mkdir -p $TEST_DIR
|
||||||
# run for 20 minutes to have a total runner time of 30 minutes
|
# run for 10 minutes or at most 2 iterations for a maximum runner
|
||||||
sudo /usr/share/zfs/zloop.sh -t 1200 -l -m1 -- -T 120 -P 60
|
# time of 20 minutes.
|
||||||
|
sudo /usr/share/zfs/zloop.sh -t 600 -I 2 -l -m1 -- -T 120 -P 60
|
||||||
- name: Prepare artifacts
|
- name: Prepare artifacts
|
||||||
if: failure()
|
if: failure()
|
||||||
run: |
|
run: |
|
||||||
|
@ -7,5 +7,6 @@ dist_scripts_SCRIPTS = \
|
|||||||
|
|
||||||
SUBDIRS = local-top
|
SUBDIRS = local-top
|
||||||
|
|
||||||
|
SHELLCHECK_IGNORE = ,SC2295
|
||||||
SHELLCHECKDIRS = $(SUBDIRS)
|
SHELLCHECKDIRS = $(SUBDIRS)
|
||||||
SHELLCHECK_SHELL = sh
|
SHELLCHECK_SHELL = sh
|
||||||
|
@ -27,7 +27,7 @@ EXTRA_DIST = \
|
|||||||
zol2zfs-patch.sed \
|
zol2zfs-patch.sed \
|
||||||
$(EXTRA_SCRIPTS)
|
$(EXTRA_SCRIPTS)
|
||||||
|
|
||||||
SHELLCHECK_IGNORE = ,SC1117
|
SHELLCHECK_IGNORE = ,SC1117,SC2086,SC2295
|
||||||
SHELLCHECKSCRIPTS = $(EXTRA_SCRIPTS)
|
SHELLCHECKSCRIPTS = $(EXTRA_SCRIPTS)
|
||||||
|
|
||||||
define EXTRA_ENVIRONMENT
|
define EXTRA_ENVIRONMENT
|
||||||
|
@ -4,5 +4,6 @@ SUBDIRS = runfiles test-runner zfs-tests
|
|||||||
|
|
||||||
EXTRA_DIST = README.md
|
EXTRA_DIST = README.md
|
||||||
|
|
||||||
|
SHELLCHECK_IGNORE = ,SC2155
|
||||||
SHELLCHECKSCRIPTS = $$(find . -name '*.sh')
|
SHELLCHECKSCRIPTS = $$(find . -name '*.sh')
|
||||||
.PHONY: $(SHELLCHECKSCRIPTS)
|
.PHONY: $(SHELLCHECKSCRIPTS)
|
||||||
|
Loading…
Reference in New Issue
Block a user