Skip to content

run_test.sh: add gentoo as valid os id in tests #350

run_test.sh: add gentoo as valid os id in tests

run_test.sh: add gentoo as valid os id in tests #350

Workflow file for this run

name: Run tests
on:
# Build at 23:00 every Sunday
schedule:
- cron: "0 23 * * 1"
pull_request:
push:
jobs:
test-distributions:
name: Build in containers
strategy:
matrix:
distro:
- {name: "alpine", tag: "3.17", variant: "-lts"}
- {name: "alpine", tag: "3.17", variant: "-virt"}
- {name: "alpine", tag: "3.16", variant: "-lts"}
- {name: "alpine", tag: "3.16", variant: "-virt"}
- {name: "alpine", tag: "3.15", variant: "-lts"}
- {name: "alpine", tag: "3.15", variant: "-virt"}
- {name: "archlinux", tag: "latest"}
- {name: "archlinux", tag: "latest", variant: "-lts"}
- {name: "archlinux", tag: "latest", variant: "-zen"}
- {name: "centos", tag: "7"}
- {name: "almalinux", tag: "9"}
- {name: "almalinux", tag: "8"}
- {name: "debian", tag: "12"}
- {name: "debian", tag: "11"}
- {name: "debian", tag: "10"}
- {name: "ubuntu", tag: "22.04"}
- {name: "ubuntu", tag: "20.04"}
- {name: "ubuntu", tag: "18.04"}
- {name: "gentoo/stage3", tag: "latest"}
runs-on: ubuntu-20.04
container:
image: docker://docker.io/${{ matrix.distro.name }}:${{ matrix.distro.tag }}
steps:
- uses: actions/checkout@v3
- name: Install Alpine dependencies
if: matrix.distro.name == 'alpine'
run: |
apk --no-cache --update add bash gcc linux${{ matrix.distro.variant }} linux${{ matrix.distro.variant }}-dev make openssl coreutils
- name: Install Arch Linux dependencies
if: matrix.distro.name == 'archlinux'
run: |
pacman -Syu --noconfirm diffutils gcc make linux${{ matrix.distro.variant }}-headers openssl
- name: Install CentOS dependencies
if: matrix.distro.name == 'centos'
run: |
yum install -y diffutils elfutils-libelf-devel gcc kernel kernel-devel make openssl
- name: Install AlmaLinux dependencies
if: matrix.distro.name == 'almalinux'
run: |
yum install -y diffutils elfutils-libelf-devel gcc kernel kernel-devel make openssl
- name: Install Debian dependencies
if: matrix.distro.name == 'debian'
run: |
apt-get update -q
apt-get install -qy make linux-headers-amd64 linux-image-amd64 openssl
- name: Install Ubuntu dependencies
if: matrix.distro.name == 'ubuntu'
run: |
apt-get update -q
apt-get install -qy gcc make linux-headers-generic linux-image-generic openssl shim-signed
- name: Install Gentoo Linux dependencies
if: matrix.distro.name == 'gentoo/stage3'
run: |
emerge --sync
emerge --noreplace -j2 -l2 gentoo-kernel-bin openssl
- name: Compute packaged kernel version
id: versions
run: |
KERNEL_VER=''
if [ "${{ matrix.distro.name }}" = alpine ] ; then
KERNEL_VER="$(apk info --contents "linux${{ matrix.distro.variant }}-dev" | sed -n 's:^lib/modules/\([^/][^/]*\)/.*:\1:p' | head -n 1)"
elif [ "${{ matrix.distro.name }}" = archlinux ] ; then
KERNEL_VER="$(pacman -Qql "linux${{ matrix.distro.variant }}-headers" | sed -n 's:^/usr/lib/modules/\([^/]\+\)/.*:\1:p' | head -n 1)"
elif [ "${{ matrix.distro.name }}" = centos ] || [ "${{ matrix.distro.name }}" = almalinux ] ; then
KERNEL_VER="$(LANG=C rpm -qi kernel-devel | sed -n 's/^Source RPM *: kernel-\(.*\).src.rpm$/\1.x86_64/p' | tail -n 1)"
elif [ "${{ matrix.distro.name }}" = debian ] ; then
KERNEL_VER="$(LANG=C dpkg --status linux-headers-amd64 | sed -n 's/^Depends: linux-headers-\(\S\+\)\( .*\)\?/\1/p' | head -n 1)"
elif [ "${{ matrix.distro.name }}" = ubuntu ] ; then
KERNEL_VER="$(LANG=C dpkg --status linux-headers-generic | sed -n 's/^Depends: linux-headers-\(\S\+\)\( .*\)\?/\1/p' | head -n 1)"
elif [ "${{ matrix.distro.name }}" = gentoo ] ; then
KERNEL_VER="$(emerge --search gentoo-kernel-bin | sed -n 's/Latest version installed: \([0-9.]\)/\1/p' | head -n 1)"
fi
if [ -z "${KERNEL_VER}" ] ; then
echo >&2 "Error: no kernel package found"
exit 1
fi
echo "Found packaged kernel ${KERNEL_VER}"
echo "KERNEL_VER=${KERNEL_VER}" >> "$GITHUB_ENV"
- name: Install dkms
run: make install
- name: Run tests
run: |
if [ "${{ matrix.distro.name }}" = alpine ] && [ "${{ matrix.distro.variant }}" = "-lts" ]; then
./run_test.sh --no-signing-tool
else
./run_test.sh
fi
test-vm:
name: Test in Ubuntu VM
strategy:
matrix:
version:
- 22.04
- 20.04
runs-on: ubuntu-${{ matrix.version }}
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
sudo apt-get update -q
sudo apt-get install -qqy make
- name: Install dkms
run: sudo make install
- name: Run tests
run: sudo ./run_test.sh
- name: Install the test module
run: sudo dkms install test/dkms_test-1.0
- name: Load the test module
run: sudo modprobe dkms_test
- name: Remove the test module
run: sudo dkms remove --all -m dkms_test -v 1.0