2023-03-15 17:41:05 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
set -eu
|
|
|
|
|
|
|
|
function prerun() {
|
|
|
|
echo "::group::Install build dependencies"
|
|
|
|
# remove snap things, update+upgrade will be faster then
|
|
|
|
for x in lxd core20 snapd; do sudo snap remove $x; done
|
|
|
|
sudo apt-get purge snapd google-chrome-stable firefox
|
|
|
|
# https://github.com/orgs/community/discussions/47863
|
|
|
|
sudo apt-get remove grub-efi-amd64-bin grub-efi-amd64-signed shim-signed --allow-remove-essential
|
|
|
|
sudo apt-get update
|
|
|
|
sudo apt upgrade
|
|
|
|
sudo xargs --arg-file=.github/workflows/build-dependencies.txt apt-get install -qq
|
|
|
|
sudo apt-get clean
|
|
|
|
sudo dmesg -c > /var/tmp/dmesg-prerun
|
|
|
|
echo "::endgroup::"
|
|
|
|
}
|
|
|
|
|
|
|
|
function mod_build() {
|
|
|
|
echo "::group::Generate debian packages"
|
|
|
|
./autogen.sh
|
|
|
|
./configure --enable-debug --enable-debuginfo --enable-asan --enable-ubsan
|
|
|
|
make --no-print-directory --silent native-deb-utils native-deb-kmod
|
|
|
|
mv ../*.deb .
|
|
|
|
rm ./openzfs-zfs-dracut*.deb ./openzfs-zfs-dkms*.deb
|
|
|
|
echo "$ImageOS-$ImageVersion" > tests/ImageOS.txt
|
|
|
|
echo "::endgroup::"
|
|
|
|
}
|
|
|
|
|
|
|
|
function mod_install() {
|
|
|
|
# install the pre-built module only on the same runner image
|
|
|
|
MOD=`cat tests/ImageOS.txt`
|
|
|
|
if [ "$MOD" != "$ImageOS-$ImageVersion" ]; then
|
|
|
|
rm -f *.deb
|
|
|
|
mod_build
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "::group::Install and load modules"
|
2023-03-16 17:00:14 +00:00
|
|
|
# don't use kernel-shipped zfs modules
|
2023-03-15 17:41:05 +00:00
|
|
|
sudo sed -i.bak 's/updates/extra updates/' /etc/depmod.d/ubuntu.conf
|
|
|
|
sudo apt-get install --fix-missing ./*.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
|
|
|
|
sudo depmod -a
|
|
|
|
sudo modprobe zfs
|
|
|
|
sudo dmesg
|
|
|
|
sudo dmesg -c > /var/tmp/dmesg-module-load
|
|
|
|
echo "::endgroup::"
|
|
|
|
|
|
|
|
echo "::group::Report CPU information"
|
|
|
|
lscpu
|
|
|
|
cat /proc/spl/kstat/zfs/chksum_bench
|
|
|
|
echo "::endgroup::"
|
|
|
|
|
2024-01-26 21:36:59 +00:00
|
|
|
echo "::group::Optimize storage for ZFS testings"
|
|
|
|
# remove swap and umount fast storage
|
|
|
|
# 89GiB -> rootfs + bootfs with ~80MB/s -> don't care
|
|
|
|
# 64GiB -> /mnt with 420MB/s -> new testing ssd
|
|
|
|
sudo swapoff -a
|
2023-03-15 17:41:05 +00:00
|
|
|
|
2024-01-26 21:36:59 +00:00
|
|
|
# this one is fast and mounted @ /mnt
|
|
|
|
# -> we reformat with ext4 + move it to /var/tmp
|
|
|
|
DEV="/dev/disk/azure/resource-part1"
|
|
|
|
sudo umount /mnt
|
|
|
|
sudo mkfs.ext4 -O ^has_journal -F $DEV
|
|
|
|
sudo mount -o noatime,barrier=0 $DEV /var/tmp
|
|
|
|
sudo chmod 1777 /var/tmp
|
2023-03-15 17:41:05 +00:00
|
|
|
|
|
|
|
# disk usage afterwards
|
2024-01-26 21:36:59 +00:00
|
|
|
sudo df -h /
|
|
|
|
sudo df -h /var/tmp
|
|
|
|
sudo fstrim -a
|
2023-03-15 17:41:05 +00:00
|
|
|
echo "::endgroup::"
|
|
|
|
}
|
|
|
|
|
|
|
|
case "$1" in
|
|
|
|
build)
|
|
|
|
prerun
|
|
|
|
mod_build
|
|
|
|
;;
|
|
|
|
tests)
|
|
|
|
prerun
|
|
|
|
mod_install
|
|
|
|
;;
|
|
|
|
esac
|