mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-28 03:49:38 +03:00
3a6d89ae52
The GitHub-hosted Ubuntu 18.04 has been deprecated and will be entirely unsupported as of April 2023. Leading up to this there will be scheduled "brownouts" to encourage users to update their workflows. This commit retires our use of the GitHub-hosted Ubuntu 18.04 runners in advance of their removal. Reviewed-by: Richard Yao <richard.yao@alumni.stonybrook.edu> Reviewed-by: George Melikov <mail@gmelikov.ru> Reviewed-by: Damian Szuberski <szuberskidamian@gmail.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #14238
84 lines
2.8 KiB
YAML
84 lines
2.8 KiB
YAML
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: Reclaim disk space
|
|
run: |
|
|
${{ github.workspace }}/.github/workflows/scripts/reclaim_disk_space.sh
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get -qq 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 -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@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
|