diff --git a/.github/workflows/zfs-tests-functional.yml b/.github/workflows/zfs-tests-functional.yml index 328cb97f10e4..0273610af045 100644 --- a/.github/workflows/zfs-tests-functional.yml +++ b/.github/workflows/zfs-tests-functional.yml @@ -1,82 +1,82 @@ name: zfs-tests-functional on: push: pull_request: jobs: tests-functional-ubuntu: strategy: fail-fast: false matrix: os: [18.04, 20.04] runs-on: ubuntu-${{ matrix.os }} 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 xargs --arg-file=${{ github.workspace }}/.github/workflows/build-dependencies.txt sudo apt-get install -qq sudo apt-get clean - name: Autogen.sh run: | ./autogen.sh - name: Configure run: | - ./configure --enable-debug --enable-debuginfo --enable-asan --enable-ubsan --with-config=dist + ./configure --enable-debug --enable-debuginfo --enable-asan --enable-ubsan - name: Make run: | make -j$(nproc) --no-print-directory --silent pkg-utils pkg-kmod - name: Install run: | sudo dpkg -i *.deb # Update order of directories to search for modules, otherwise # Ubuntu will load kernel-shipped ones. sudo sed -i.bak 's/updates/extra updates/' /etc/depmod.d/ubuntu.conf sudo depmod sudo modprobe zfs # Workaround for cloud-init bug # see https://github.com/openzfs/zfs/issues/12644 FILE=/lib/udev/rules.d/10-cloud-init-hook-hotplug.rules if [ -r "${FILE}" ]; then HASH=$(md5sum "${FILE}" | awk '{ print $1 }') if [ "${HASH}" = "121ff0ef1936cd2ef65aec0458a35772" ]; then # Just shove a zd* exclusion right above the hotplug hook... sudo sed -i -e s/'LABEL="cloudinit_hook"'/'KERNEL=="zd*", GOTO="cloudinit_end"\n&'/ "${FILE}" sudo udevadm control --reload-rules fi fi - name: Clear the kernel ring buffer run: | sudo dmesg -c >/var/tmp/dmesg-prerun - name: Report disk space run: | df -h / - name: Tests run: | set -o pipefail /usr/share/zfs/zfs-tests.sh -vKR -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 /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 Ubuntu-${{ matrix.os }} path: | /var/tmp/test_results/* !/var/tmp/test_results/current if-no-files-found: ignore diff --git a/.github/workflows/zfs-tests-sanity.yml b/.github/workflows/zfs-tests-sanity.yml index 4c15cecf58d8..73606f909e10 100644 --- a/.github/workflows/zfs-tests-sanity.yml +++ b/.github/workflows/zfs-tests-sanity.yml @@ -1,78 +1,78 @@ name: zfs-tests-sanity on: push: pull_request: jobs: tests: 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 xargs --arg-file=${{ github.workspace }}/.github/workflows/build-dependencies.txt sudo apt-get install -qq sudo apt-get clean - name: Autogen.sh run: | ./autogen.sh - name: Configure run: | - ./configure --enable-debug --enable-debuginfo --enable-asan --enable-ubsan --with-config=dist + ./configure --enable-debug --enable-debuginfo --enable-asan --enable-ubsan - name: Make run: | make -j$(nproc) --no-print-directory --silent pkg-utils pkg-kmod - name: Install run: | sudo dpkg -i *.deb # Update order of directories to search for modules, otherwise # Ubuntu will load kernel-shipped ones. sudo sed -i.bak 's/updates/extra updates/' /etc/depmod.d/ubuntu.conf sudo depmod sudo modprobe zfs # Workaround for cloud-init bug # see https://github.com/openzfs/zfs/issues/12644 FILE=/lib/udev/rules.d/10-cloud-init-hook-hotplug.rules if [ -r "${FILE}" ]; then HASH=$(md5sum "${FILE}" | awk '{ print $1 }') if [ "${HASH}" = "121ff0ef1936cd2ef65aec0458a35772" ]; then # Just shove a zd* exclusion right above the hotplug hook... sudo sed -i -e s/'LABEL="cloudinit_hook"'/'KERNEL=="zd*", GOTO="cloudinit_end"\n&'/ "${FILE}" sudo udevadm control --reload-rules fi fi - name: Clear the kernel ring buffer run: | sudo dmesg -c >/var/tmp/dmesg-prerun - name: Report disk space run: | df -h / - name: Tests run: | set -o pipefail /usr/share/zfs/zfs-tests.sh -vKR -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 /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 Ubuntu-${{ matrix.os }} path: | /var/tmp/test_results/* !/var/tmp/test_results/current if-no-files-found: ignore diff --git a/.github/workflows/zloop.yml b/.github/workflows/zloop.yml index 64fe96a3ab6b..d49eeae1653c 100644 --- a/.github/workflows/zloop.yml +++ b/.github/workflows/zloop.yml @@ -1,62 +1,62 @@ name: zloop on: push: pull_request: jobs: tests: runs-on: ubuntu-20.04 env: TEST_DIR: /var/tmp/zloop steps: - uses: actions/checkout@v2 with: ref: ${{ github.event.pull_request.head.sha }} - name: Install dependencies run: | sudo apt-get update xargs --arg-file=${{ github.workspace }}/.github/workflows/build-dependencies.txt sudo apt-get install -qq sudo apt-get clean - name: Autogen.sh run: | ./autogen.sh - name: Configure run: | - ./configure --enable-debug --enable-debuginfo --enable-asan --enable-ubsan --with-config=dist + ./configure --enable-debug --enable-debuginfo --enable-asan --enable-ubsan - name: Make run: | make -j$(nproc) --no-print-directory --silent pkg-utils pkg-kmod - name: Install run: | sudo dpkg -i *.deb # Update order of directories to search for modules, otherwise # Ubuntu will load kernel-shipped ones. sudo sed -i.bak 's/updates/extra updates/' /etc/depmod.d/ubuntu.conf sudo depmod sudo modprobe zfs - name: Tests run: | sudo mkdir -p $TEST_DIR # run for 10 minutes or at most 2 iterations for a maximum runner # time of 20 minutes. sudo /usr/share/zfs/zloop.sh -t 600 -I 2 -l -m1 -- -T 120 -P 60 - name: Prepare artifacts if: failure() run: | sudo chmod +r -R $TEST_DIR/ - uses: actions/upload-artifact@v2 if: failure() with: name: Logs path: | /var/tmp/zloop/*/ !/var/tmp/zloop/*/vdev/ if-no-files-found: ignore - uses: actions/upload-artifact@v2 if: failure() with: name: Pool files path: | /var/tmp/zloop/*/vdev/ if-no-files-found: ignore