mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 18:40:43 +03:00
CI: Add ARM builder
Do a ZFS build inside of an ARM runner. This only does a simple build, it does not run the test suite. The build runs on the runner itself rather than in a VM, since nesting is not supported on Github ARM runners. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: George Melikov <mail@gmelikov.ru> Signed-off-by: Tony Hutter <hutter2@llnl.gov> Closes #18343
This commit is contained in:
@@ -3,8 +3,11 @@
|
||||
######################################################################
|
||||
# 3) install dependencies for compiling and loading
|
||||
#
|
||||
# $1: OS name (like 'fedora41')
|
||||
# $2: (optional) Experimental Fedora kernel version, like "6.14" to
|
||||
# qemu-3-deps-vm.sh [--poweroff] OS_NAME [FEDORA_VERSION]
|
||||
#
|
||||
# --poweroff: Power off the VM after installing dependencies
|
||||
# OS_NAME: OS name (like 'fedora41')
|
||||
# FEDORA_VERSION: (optional) Experimental Fedora kernel version, like "6.14" to
|
||||
# install instead of Fedora defaults.
|
||||
######################################################################
|
||||
|
||||
@@ -153,6 +156,12 @@ function install_fedora_experimental_kernel {
|
||||
sudo dnf -y copr disable @kernel-vanilla/mainline
|
||||
}
|
||||
|
||||
POWEROFF=""
|
||||
if [ "$1" == "--poweroff" ] ; then
|
||||
POWEROFF=1
|
||||
shift
|
||||
fi
|
||||
|
||||
# Install dependencies
|
||||
case "$1" in
|
||||
almalinux8)
|
||||
@@ -212,6 +221,11 @@ case "$1" in
|
||||
sudo apt-get install -yq linux-tools-common libtirpc-dev \
|
||||
linux-modules-extra-$(uname -r)
|
||||
sudo apt-get install -yq dh-sequence-dkms
|
||||
|
||||
# Need 'build-essential' explicitly for ARM builder
|
||||
# https://github.com/actions/runner-images/issues/9946
|
||||
sudo apt-get install -yq build-essential
|
||||
|
||||
echo "##[endgroup]"
|
||||
echo "##[group]Delete Ubuntu OpenZFS modules"
|
||||
for i in $(find /lib/modules -name zfs -type d); do sudo rm -rvf $i; done
|
||||
@@ -306,5 +320,7 @@ esac
|
||||
|
||||
# reset cloud-init configuration and poweroff
|
||||
sudo cloud-init clean --logs
|
||||
sleep 2 && sudo poweroff &
|
||||
if [ "$POWEROFF" == "1" ] ; then
|
||||
sleep 2 && sudo poweroff &
|
||||
fi
|
||||
exit 0
|
||||
|
||||
@@ -350,7 +350,16 @@ fi
|
||||
# save some sysinfo
|
||||
uname -a > /var/tmp/uname.txt
|
||||
|
||||
cd $HOME/zfs
|
||||
# Check if we're running this script from within a VM or on the runner itself.
|
||||
# Most of the time we will be running in a VM, but the ARM builder actually
|
||||
# runs this script on the runner. If we happen to be running on the ARM
|
||||
# runner, we will start in the ZFS source directory. If we're running on a VM
|
||||
# then we'll just start in our home directory, and will need to 'cd' into our
|
||||
# source directory.
|
||||
if [ ! -e META ] ; then
|
||||
cd $HOME/zfs
|
||||
fi
|
||||
|
||||
export PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin"
|
||||
|
||||
extra=""
|
||||
|
||||
Reference in New Issue
Block a user