+++ /dev/null
-name: zfs-tests-functional
-
-on:
- push:
- pull_request:
-
-jobs:
- tests-functional-ubuntu:
- strategy:
- fail-fast: false
- matrix:
- os: [20.04, 22.04]
- runs-on: ubuntu-${{ matrix.os }}
- steps:
- - uses: actions/checkout@v3
- with:
- ref: ${{ github.event.pull_request.head.sha }}
- - name: Install dependencies
- run: |
- # https://github.com/orgs/community/discussions/47863
- sudo apt-mark hold grub-efi-amd64-signed
- sudo apt-get update --fix-missing
- sudo apt-get upgrade
- sudo xargs --arg-file=${{ github.workspace }}/.github/workflows/build-dependencies.txt 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
- - name: Make
- run: |
- make --no-print-directory --silent native-deb-utils native-deb-kmod
- mv ../*.deb .
- rm ./openzfs-zfs-dkms*.deb ./openzfs-zfs-dracut*.deb
- - name: Install
- run: |
- # 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 dpkg -i *.deb
- # Native Debian packages enable and start the services
- # Stop zfs-zed daemon, as it may interfere with some ZTS test cases
- sudo systemctl stop zfs-zed
- # 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: Reclaim and report disk space
- run: |
- ${{ github.workspace }}/.github/workflows/scripts/reclaim_disk_space.sh
- 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@v3
- if: failure()
- with:
- name: Test logs Ubuntu-${{ matrix.os }}
- path: |
- /var/tmp/test_results/*
- !/var/tmp/test_results/current
- if-no-files-found: ignore