aboutsummaryrefslogtreecommitdiff
path: root/sys/contrib/openzfs/.github/workflows
diff options
context:
space:
mode:
authorMartin Matuska <mm@FreeBSD.org>2022-03-08 17:52:10 +0000
committerMartin Matuska <mm@FreeBSD.org>2022-03-08 17:53:02 +0000
commitc03c5b1c80914ec656fbee84539355d1fad68bf9 (patch)
tree804d8ffb7943c01f04a7dfa4e98965881bcbfc3c /sys/contrib/openzfs/.github/workflows
parent5678114cd8b310bd6f0a5699f036fc5b18addd65 (diff)
parenta86e089415679cf1b98eb424a159bb36aa2c19e3 (diff)
downloadsrc-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')
-rw-r--r--sys/contrib/openzfs/.github/workflows/build-dependencies.txt49
-rw-r--r--sys/contrib/openzfs/.github/workflows/checkstyle.yaml32
-rwxr-xr-xsys/contrib/openzfs/.github/workflows/scripts/reclaim_disk_space.sh20
-rw-r--r--sys/contrib/openzfs/.github/workflows/zfs-tests-functional.yml43
-rw-r--r--sys/contrib/openzfs/.github/workflows/zfs-tests-sanity.yml47
-rw-r--r--sys/contrib/openzfs/.github/workflows/zloop.yml17
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