feat: CI build scripts #99 merge and updates

This commit is contained in:
GutPuncher 2024-03-05 05:12:24 -05:00
parent 8c3c50983e
commit cd019bb3ef
No known key found for this signature in database
GPG key ID: 38CE0A7B6841D1C7
2 changed files with 32 additions and 34 deletions

View file

@ -2,13 +2,15 @@ name: Build Application
on: on:
push: push:
branches-ignore: branches:
- 'stable' - 'master'
paths-ignore: paths-ignore:
- '**.md' - '**.md'
- 'screenshots/**' - 'screenshots/**'
- '**/LICENSE' - '**/LICENSE'
pull_request: pull_request:
branches:
- 'master'
paths-ignore: paths-ignore:
- '**.md' - '**.md'
- 'screenshots/**' - 'screenshots/**'
@ -18,7 +20,7 @@ on:
jobs: jobs:
build: build:
name: Build name: Build
runs-on: self-hosted runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
@ -37,11 +39,14 @@ jobs:
./build-iso.sh --headless ./build-iso.sh --headless
cd .. cd ..
- name: Upload artifacts - name: Releasing latest
uses: actions/upload-artifact@v3 if: ${{ success() }}
uses: "GutPuncher/action-automatic-releases@latest"
with: with:
name: ISOs repo_token: "${{ secrets.GITHUB_TOKEN }}"
path: | automatic_release_tag: "latest"
build/*.iso prerelease: false
title: "Pre-Built ISOs [${{ github.sha }}]"
files: ./build/*.iso
if-no-files-found: error if-no-files-found: error

View file

@ -14,16 +14,9 @@ then
fi fi
[ "$1" = "--headless" ] && QEMU_HEADLESS='-display none' [ "$1" = "--headless" ] && QEMU_HEADLESS='-display none'
SUDO='none'
command -v doas && SUDO=doas
command -v sudo && SUDO=sudo
if [ "$SUDO" = "none" ] ; then
echo 'No sudo or doas installed. Cannot proceed.'
exit 1
fi
KVM='' KVM=''
(lsmod | grep -q kvm) && KVM=',accel=kvm' (lsmod | grep -q kvm) && KVM=' -accel kvm'
# Set this true if you want to test ISOs in QEMU after building. # Set this true if you want to test ISOs in QEMU after building.
TESTING=false TESTING=false
@ -37,16 +30,16 @@ TMPMOUNT="$TMPDIR/mnt"
QEMU_BIN_PATH=$(dirname "$(which qemu-system-x86_64)") QEMU_BIN_PATH=$(dirname "$(which qemu-system-x86_64)")
mount_tempdisk() { mount_tempdisk() {
$SUDO modprobe nbd sudo modprobe nbd
$SUDO $QEMU_BIN_PATH/qemu-nbd -c /dev/nbd0 -f raw $TMPDISK sudo $QEMU_BIN_PATH/qemu-nbd -c /dev/nbd0 -f raw $TMPDISK
$SUDO partprobe /dev/nbd0 sudo partprobe /dev/nbd0
$SUDO mount /dev/nbd0p1 $TMPMOUNT sudo mount /dev/nbd0p1 $TMPMOUNT
} }
umount_tempdisk() { umount_tempdisk() {
sync sync
$SUDO umount $TMPMOUNT sudo umount $TMPMOUNT
$SUDO $QEMU_BIN_PATH/qemu-nbd -d /dev/nbd0 sudo $QEMU_BIN_PATH/qemu-nbd -d /dev/nbd0
} }
[ ! -d $TMPMOUNT ] && mkdir -p $TMPMOUNT [ ! -d $TMPMOUNT ] && mkdir -p $TMPMOUNT
@ -66,8 +59,8 @@ rm ../src/Home/Registry.ZC 2> /dev/null
rm ../src/Home/MakeHome.ZC 2> /dev/null rm ../src/Home/MakeHome.ZC 2> /dev/null
rm ../src/Boot/Kernel.ZXE 2> /dev/null rm ../src/Boot/Kernel.ZXE 2> /dev/null
mount_tempdisk mount_tempdisk
$SUDO mkdir $TMPMOUNT/Tmp/OSBuild/ sudo mkdir $TMPMOUNT/Tmp/OSBuild/
$SUDO cp -r ../src/* $TMPMOUNT/Tmp/OSBuild sudo cp -r ../src/* $TMPMOUNT/Tmp/OSBuild
umount_tempdisk umount_tempdisk
echo "Rebuilding kernel headers, kernel, OS, and building Distro ISO ..." echo "Rebuilding kernel headers, kernel, OS, and building Distro ISO ..."
@ -105,7 +98,7 @@ sed -i "s/\[\]/\[$(grep -o "0x" ./limine/limine-bios-hdd.h | wc -l)\]/g" limine/
mount_tempdisk mount_tempdisk
echo "Extracting MyDistro ISO from vdisk ..." echo "Extracting MyDistro ISO from vdisk ..."
cp $TMPMOUNT/Tmp/MyDistro.ISO.C ./ZealOS-MyDistro.iso cp $TMPMOUNT/Tmp/MyDistro.ISO.C ./ZealOS-MyDistro.iso
$SUDO rm $TMPMOUNT/Tmp/MyDistro.ISO.C 2> /dev/null sudo rm $TMPMOUNT/Tmp/MyDistro.ISO.C 2> /dev/null
echo "Setting up temp ISO directory contents for use with limine xorriso command ..." echo "Setting up temp ISO directory contents for use with limine xorriso command ..."
sudo cp -rf $TMPMOUNT/* $TMPISODIR sudo cp -rf $TMPMOUNT/* $TMPISODIR
sudo rm $TMPISODIR/Boot/OldMBR.BIN 2> /dev/null sudo rm $TMPISODIR/Boot/OldMBR.BIN 2> /dev/null
@ -119,8 +112,8 @@ sudo cp limine/limine-bios.sys $TMPISODIR/Boot/Limine-BIOS.SYS
sudo cp ../zealbooter/bin/kernel $TMPISODIR/Boot/ZealBooter.ELF sudo cp ../zealbooter/bin/kernel $TMPISODIR/Boot/ZealBooter.ELF
sudo cp ../zealbooter/Limine.CFG $TMPISODIR/Boot/Limine.CFG sudo cp ../zealbooter/Limine.CFG $TMPISODIR/Boot/Limine.CFG
echo "Copying DVDKernel.ZXE over ISO Boot/Kernel.ZXE ..." echo "Copying DVDKernel.ZXE over ISO Boot/Kernel.ZXE ..."
$SUDO mv $TMPMOUNT/Tmp/DVDKernel.ZXE $TMPISODIR/Boot/Kernel.ZXE sudo mv $TMPMOUNT/Tmp/DVDKernel.ZXE $TMPISODIR/Boot/Kernel.ZXE
$SUDO rm $TMPISODIR/Tmp/DVDKernel.ZXE 2> /dev/null sudo rm $TMPISODIR/Tmp/DVDKernel.ZXE 2> /dev/null
umount_tempdisk umount_tempdisk
xorriso -joliet "on" -rockridge "on" -as mkisofs -b Boot/Limine-BIOS-CD.BIN \ xorriso -joliet "on" -rockridge "on" -as mkisofs -b Boot/Limine-BIOS-CD.BIN \
@ -156,8 +149,8 @@ mv ./ZealOS-MyDistro.iso ./ZealOS-PublicDomain-BIOS-$(date +%Y-%m-%d-%H_%M_%S).i
mv ./ZealOS-limine.iso ./ZealOS-BSD2-UEFI-$(date +%Y-%m-%d-%H_%M_%S).iso mv ./ZealOS-limine.iso ./ZealOS-BSD2-UEFI-$(date +%Y-%m-%d-%H_%M_%S).iso
echo "Deleting temp folder ..." echo "Deleting temp folder ..."
$SUDO rm -rf $TMPDIR sudo rm -rf $TMPDIR
$SUDO rm -rf $TMPISODIR sudo rm -rf $TMPISODIR
echo "Finished." echo "Finished."
echo echo
echo "ISOs built:" echo "ISOs built:"