diff options
author | Martin Matuska <mm@FreeBSD.org> | 2022-03-08 17:52:10 +0000 |
---|---|---|
committer | Martin Matuska <mm@FreeBSD.org> | 2022-03-08 17:53:02 +0000 |
commit | c03c5b1c80914ec656fbee84539355d1fad68bf9 (patch) | |
tree | 804d8ffb7943c01f04a7dfa4e98965881bcbfc3c /sys/contrib/openzfs/.github/workflows | |
parent | 5678114cd8b310bd6f0a5699f036fc5b18addd65 (diff) | |
parent | a86e089415679cf1b98eb424a159bb36aa2c19e3 (diff) | |
download | src-c03c5b1c80914ec656fbee84539355d1fad68bf9.tar.gz src-c03c5b1c80914ec656fbee84539355d1fad68bf9.zip |
zfs: merge openzfs/zfs@a86e08941 (master) into main
Notable upstream pull request merges:
#9078: log xattr=sa create/remove/update to ZIL
#11919: Cross-platform xattr user namespace compatibility
#13014: Report dnodes with faulty bonuslen
#13016: FreeBSD: Fix zvol_cdev_open locking
#13019: spl: Don't check FreeBSD rwlocks for double initialization
#13027: Fix clearing set-uid and set-gid bits on a file when
replying a write
#13031: Add enumerated vdev names to 'zpool iostat -v' and
'zpool list -v'
#13074: Enable encrypted raw sending to pools with greater ashift
#13076: Receive checks should allow unencrypted child datasets
#13098: Avoid dirtying the final TXGs when exporting a pool
#13172: Fix ENOSPC when unlinking multiple files from full pool
Obtained from: OpenZFS
OpenZFS commit: a86e089415679cf1b98eb424a159bb36aa2c19e3
Diffstat (limited to 'sys/contrib/openzfs/.github/workflows')
6 files changed, 140 insertions, 68 deletions
diff --git a/sys/contrib/openzfs/.github/workflows/build-dependencies.txt b/sys/contrib/openzfs/.github/workflows/build-dependencies.txt new file mode 100644 index 000000000000..e591399001f5 --- /dev/null +++ b/sys/contrib/openzfs/.github/workflows/build-dependencies.txt @@ -0,0 +1,49 @@ +acl +alien +attr +autoconf +bc +build-essential +curl +dbench +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 +libselinux-dev +libssl-dev +libtool +libudev-dev +lsscsi +mdadm +nfs-kernel-server +pamtester +parted +python3 +python3-cffi +python3-dev +python3-packaging +python3-setuptools +rng-tools +rsync +samba +sysstat +uuid-dev +watchdog +wget +xfslibs-dev +xz-utils +zlib1g-dev diff --git a/sys/contrib/openzfs/.github/workflows/checkstyle.yaml b/sys/contrib/openzfs/.github/workflows/checkstyle.yaml index a102b6e8aa1f..abc0ff11916a 100644 --- a/sys/contrib/openzfs/.github/workflows/checkstyle.yaml +++ b/sys/contrib/openzfs/.github/workflows/checkstyle.yaml @@ -6,7 +6,7 @@ on: jobs: checkstyle: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: @@ -14,31 +14,37 @@ jobs: - name: Install dependencies run: | sudo apt-get update - sudo apt-get install --yes -qq build-essential autoconf libtool gawk alien fakeroot linux-headers-$(uname -r) - sudo apt-get install --yes -qq zlib1g-dev uuid-dev libattr1-dev libblkid-dev libselinux-dev libudev-dev libssl-dev python3 python3-dev python3-setuptools python3-cffi - # packages for tests - sudo apt-get install --yes -qq parted lsscsi ksh attr acl nfs-kernel-server fio - sudo apt-get install --yes -qq mandoc cppcheck pax-utils devscripts - sudo -E pip --quiet install flake8 + sudo xargs --arg-file=${{ github.workspace }}/.github/workflows/build-dependencies.txt apt-get install -qq + sudo apt-get install -qq mandoc cppcheck pax-utils devscripts + sudo python3 -m pip install --quiet flake8 + sudo apt-get clean + + # confirm that the tools are installed + # the build system doesn't fail when they are not + checkbashisms --version + cppcheck --version + flake8 --version + scanelf --version + shellcheck --version - name: Prepare run: | - sh ./autogen.sh + ./autogen.sh ./configure - make -j$(nproc) + make -j$(nproc) --no-print-directory --silent - name: Checkstyle run: | - make checkstyle + make -j$(nproc) --no-print-directory --silent checkstyle - name: Lint run: | - make lint + make -j$(nproc) --no-print-directory --silent lint - name: CheckABI id: CheckABI run: | - sudo docker run -v $(pwd):/source ghcr.io/openzfs/libabigail make checkabi + docker run -v $(pwd):/source ghcr.io/openzfs/libabigail make -j$(nproc) --no-print-directory --silent checkabi - name: StoreABI if: failure() && steps.CheckABI.outcome == 'failure' run: | - sudo docker run -v $(pwd):/source ghcr.io/openzfs/libabigail make storeabi + docker run -v $(pwd):/source ghcr.io/openzfs/libabigail make -j$(nproc) --no-print-directory --silent storeabi - name: Prepare artifacts if: failure() && steps.CheckABI.outcome == 'failure' run: | diff --git a/sys/contrib/openzfs/.github/workflows/scripts/reclaim_disk_space.sh b/sys/contrib/openzfs/.github/workflows/scripts/reclaim_disk_space.sh new file mode 100755 index 000000000000..cc16a9079317 --- /dev/null +++ b/sys/contrib/openzfs/.github/workflows/scripts/reclaim_disk_space.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +set -eu + +# remove 4GiB of images +sudo systemd-run docker system prune --force --all --volumes + +# remove unused software +sudo systemd-run 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 diff --git a/sys/contrib/openzfs/.github/workflows/zfs-tests-functional.yml b/sys/contrib/openzfs/.github/workflows/zfs-tests-functional.yml index 19d3f57baec9..1a32e2e22932 100644 --- a/sys/contrib/openzfs/.github/workflows/zfs-tests-functional.yml +++ b/sys/contrib/openzfs/.github/workflows/zfs-tests-functional.yml @@ -15,27 +15,23 @@ jobs: - uses: actions/checkout@v2 with: ref: ${{ github.event.pull_request.head.sha }} + - name: Reclaim disk space + run: | + ${{ github.workspace }}/.github/workflows/scripts/reclaim_disk_space.sh - name: Install dependencies run: | sudo apt-get update - sudo apt-get install --yes -qq build-essential autoconf libtool gdb lcov \ - git alien fakeroot wget curl bc fio acl \ - 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 libcurl4-openssl-dev \ - python3 python3-dev python3-setuptools python3-cffi python3-packaging + xargs --arg-file=${{ github.workspace }}/.github/workflows/build-dependencies.txt sudo apt-get install -qq + sudo apt-get clean - name: Autogen.sh run: | - sh autogen.sh + ./autogen.sh - name: Configure run: | - ./configure --enable-debug --enable-debuginfo + ./configure --enable-debug --enable-debuginfo --enable-asan --enable-ubsan - name: Make run: | - make --no-print-directory -s pkg-utils pkg-kmod + make -j$(nproc) --no-print-directory --silent pkg-utils pkg-kmod - name: Install run: | sudo dpkg -i *.deb @@ -55,21 +51,24 @@ jobs: sudo udevadm control --reload-rules fi fi - # Workaround to provide additional free space for testing. - # https://github.com/actions/virtual-environments/issues/2840 - sudo rm -rf /usr/share/dotnet - sudo rm -rf /opt/ghc - sudo rm -rf "/usr/local/share/boost" - sudo rm -rf "$AGENT_TOOLSDIRECTORY" + - name: Clear the kernel ring buffer + run: | + sudo dmesg -c >/var/tmp/dmesg-prerun + - name: Report disk space + run: | + df -h / - name: Tests run: | - /usr/share/zfs/zfs-tests.sh -vR -s 3G + set -o pipefail + /usr/share/zfs/zfs-tests.sh -vR -s 3G | scripts/zfs-tests-color.sh + shell: bash + timeout-minutes: 330 - name: Prepare artifacts if: failure() run: | RESULTS_PATH=$(readlink -f /var/tmp/test_results/current) 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/* # 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 @@ -77,5 +76,7 @@ jobs: if: failure() with: 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 diff --git a/sys/contrib/openzfs/.github/workflows/zfs-tests-sanity.yml b/sys/contrib/openzfs/.github/workflows/zfs-tests-sanity.yml index 2b97fd61822f..d10350d2961f 100644 --- a/sys/contrib/openzfs/.github/workflows/zfs-tests-sanity.yml +++ b/sys/contrib/openzfs/.github/workflows/zfs-tests-sanity.yml @@ -6,32 +6,28 @@ on: jobs: tests: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 with: ref: ${{ github.event.pull_request.head.sha }} + - name: Reclaim disk space + run: | + ${{ github.workspace }}/.github/workflows/scripts/reclaim_disk_space.sh - name: Install dependencies run: | sudo apt-get update - sudo apt-get install --yes -qq build-essential autoconf libtool gdb lcov \ - git alien fakeroot wget curl bc fio acl \ - 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 libcurl4-openssl-dev \ - python3 python3-dev python3-setuptools python3-cffi python3-packaging + xargs --arg-file=${{ github.workspace }}/.github/workflows/build-dependencies.txt sudo apt-get install -qq + sudo apt-get clean - name: Autogen.sh run: | - sh autogen.sh + ./autogen.sh - name: Configure run: | - ./configure --enable-debug --enable-debuginfo + ./configure --enable-debug --enable-debuginfo --enable-asan --enable-ubsan - name: Make run: | - make --no-print-directory -s pkg-utils pkg-kmod + make -j$(nproc) --no-print-directory --silent pkg-utils pkg-kmod - name: Install run: | sudo dpkg -i *.deb @@ -51,27 +47,32 @@ jobs: sudo udevadm control --reload-rules fi fi - # Workaround to provide additional free space for testing. - # https://github.com/actions/virtual-environments/issues/2840 - sudo rm -rf /usr/share/dotnet - sudo rm -rf /opt/ghc - sudo rm -rf "/usr/local/share/boost" - sudo rm -rf "$AGENT_TOOLSDIRECTORY" + - name: Clear the kernel ring buffer + run: | + sudo dmesg -c >/var/tmp/dmesg-prerun + - name: Report disk space + run: | + df -h / - name: Tests run: | - /usr/share/zfs/zfs-tests.sh -vR -s 3G -r sanity + set -o pipefail + /usr/share/zfs/zfs-tests.sh -vR -s 3G -r sanity | scripts/zfs-tests-color.sh + shell: bash + timeout-minutes: 330 - name: Prepare artifacts if: failure() run: | RESULTS_PATH=$(readlink -f /var/tmp/test_results/current) 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/* # 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 - uses: actions/upload-artifact@v2 if: failure() with: - name: Test logs - path: /var/tmp/test_results/20*/ + name: Test logs Ubuntu-${{ matrix.os }} + path: | + /var/tmp/test_results/* + !/var/tmp/test_results/current if-no-files-found: ignore diff --git a/sys/contrib/openzfs/.github/workflows/zloop.yml b/sys/contrib/openzfs/.github/workflows/zloop.yml index 5c1b9bd1ce22..8eb2a1d9bb0f 100644 --- a/sys/contrib/openzfs/.github/workflows/zloop.yml +++ b/sys/contrib/openzfs/.github/workflows/zloop.yml @@ -6,7 +6,7 @@ on: jobs: tests: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 env: TEST_DIR: /var/tmp/zloop steps: @@ -16,22 +16,17 @@ jobs: - name: Install dependencies run: | sudo apt-get update - sudo apt-get install --yes -qq build-essential autoconf libtool gdb \ - git alien fakeroot \ - 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 \ - python3 python3-dev python3-setuptools python3-cffi python3-packaging + xargs --arg-file=${{ github.workspace }}/.github/workflows/build-dependencies.txt sudo apt-get install -qq + sudo apt-get clean - name: Autogen.sh run: | - sh autogen.sh + ./autogen.sh - name: Configure run: | - ./configure --enable-debug --enable-debuginfo + ./configure --enable-debug --enable-debuginfo --enable-asan --enable-ubsan - name: Make run: | - make --no-print-directory -s pkg-utils pkg-kmod + make -j$(nproc) --no-print-directory --silent pkg-utils pkg-kmod - name: Install run: | sudo dpkg -i *.deb |