github: Try building everything on ubuntu-22.04 #16
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build xloop kernel modules | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
release: | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- name: kernel modules [Linux kernel 5.4.x] | |
build-os: ubuntu-22.04 | |
kernel-type: vanilla | |
kernel-version: 5.4.y | |
- name: kernel modules [Linux kernel 5.10.x] | |
build-os: ubuntu-22.04 | |
kernel-type: vanilla | |
kernel-version: 5.10.y | |
- name: kernel modules [Linux kernel 5.15.x] | |
build-os: ubuntu-22.04 | |
kernel-type: vanilla | |
kernel-version: 5.15.y | |
- name: kernel modules [Linux kernel 6.1.x] | |
build-os: ubuntu-22.04 | |
kernel-type: vanilla | |
kernel-version: 6.1.y | |
- name: kernel modules [Linux kernel 6.6.x] | |
build-os: ubuntu-22.04 | |
kernel-type: vanilla | |
kernel-version: 6.6.y | |
- name: kernel modules [CentOS 8.4 kernel 4.18.0-305] | |
build-os: ubuntu-22.04 | |
kernel-type: centos-rpm | |
kernel-source: https://vault.centos.org/8.4.2105/BaseOS/Source/SPackages/kernel-4.18.0-305.10.2.el8_4.src.rpm | |
- name: kernel modules [CentOS 8.5 kernel 4.18.0-348] | |
build-os: ubuntu-22.04 | |
kernel-type: centos-rpm | |
kernel-source: https://vault.centos.org/8.5.2111/BaseOS/Source/SPackages/kernel-4.18.0-348.7.1.el8_5.src.rpm | |
- name: kernel modules [CentOS 9.3 kernel 5.14.0-x] | |
build-os: ubuntu-22.04 | |
kernel-type: centos-tar | |
kernel-source: https://files.bwlp.ks.uni-freiburg.de/stuff/centos/linux-5.14.0-362.18.1.el9_3.tar.xz | |
- name: kernel modules [CentOS 9.4 kernel 5.14.0-x] | |
build-os: ubuntu-22.04 | |
kernel-type: centos-tar | |
kernel-source: https://files.bwlp.ks.uni-freiburg.de/stuff/centos/linux-5.14.0-427.el9.tar.xz | |
name: Build xloop ${{ matrix.config.name }} | |
runs-on: ${{ matrix.config.build-os }} | |
steps: | |
- name: Install xloop dependencies | |
run: | | |
sudo apt-get update -y -qq | |
sudo apt-get install -y -qq make \ | |
clang-format \ | |
libelf-dev \ | |
libcap-dev \ | |
rpm2cpio \ | |
rpm | |
- name: Checkout xloop repository | |
uses: actions/checkout@v4 | |
- name: Fetch xloop repository tags | |
run: git fetch --prune --unshallow | |
- name: Checkout Vanilla kernel version [git] | |
if: matrix.config.kernel-type == 'vanilla' | |
run: git clone --depth 1 --branch "linux-${{ matrix.config.kernel-version }}" "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git" "../kernel" | |
- name: Checkout CentOS kernel version [rpm] | |
if: matrix.config.kernel-type == 'centos-rpm' | |
run: | | |
mkdir "${{ github.workspace }}/../kernel" | |
mkdir "${{ github.workspace }}/../kernel-download" | |
wget -q -O "${{ github.workspace }}/../kernel-download/kernel.rpm" "${{ matrix.config.kernel-source }}" | |
cd "${{ github.workspace }}/../kernel-download" | |
rpm2cpio "${{ github.workspace }}/../kernel-download/kernel.rpm" | cpio --extract --make-directories | |
tar --strip 1 -a -x -f linux-*.el*.tar.xz -C "${{ github.workspace }}/../kernel" | |
cd | |
rm -rf -- "${{ github.workspace }}/../kernel-download" | |
- name: Checkout CentOS kernel version [tar] | |
if: matrix.config.kernel-type == 'centos-tar' | |
run: | | |
mkdir "${{ github.workspace }}/../kernel" | |
mkdir "${{ github.workspace }}/../kernel-download" | |
wget -q -O "${{ github.workspace }}/../kernel-download/kernel.tar.xz" "${{ matrix.config.kernel-source }}" | |
tar --strip 1 -a -x -f "${{ github.workspace }}/../kernel-download/kernel.tar.xz" -C "${{ github.workspace }}/../kernel" | |
rm -rf -- "${{ github.workspace }}/../kernel-download" | |
- name: Configure kernel version | |
working-directory: ${{ github.workspace }}/../kernel | |
run: | | |
make defconfig | |
make modules_prepare | |
- name: Configure xloop build | |
run: | | |
cmake -B ${{ github.workspace }}/build \ | |
-S ${{ github.workspace }} \ | |
-D CMAKE_BUILD_TYPE=Release \ | |
-D KERNEL_BUILD_DIR=${{ github.workspace }}/../kernel \ | |
-D KERNEL_INSTALL_DIR=${{ github.workspace }}/../kernel/extra \ | |
-D KERNEL_SCRIPTS_DIR=${{ github.workspace }}/../kernel/scripts | |
- name: Build xloop kernel modules | |
working-directory: ${{ github.workspace }}/build | |
run: make xloop xloop_file_fmt_qcow xloop_file_fmt_raw |