Merge pull request #8 from maxkratz/feature/switch-to-self-hosted-runner

GitHub Actions CI: switch to self-hosted runner
This commit is contained in:
Maximilian Kratz 2024-05-18 11:40:17 +02:00 committed by GitHub
commit 696d2a6840
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 44 additions and 8 deletions

View file

@ -25,15 +25,25 @@ permissions:
jobs:
vagrant-provision:
# Running on macOS, because macOS-based GitHub-hosted action runners do support nested virtualization.
# https://github.com/actions/runner-images/issues/433
runs-on: macos-12
runs-on: [self-hosted]
steps:
- uses: actions/checkout@v4
- name: install dependencies
- name: clean up old VirtualBox VMs
run: |
vboxmanage list vms | \
grep -o -P '(?<={).*(?=})' | \
while read line ; do vboxmanage unregistervm $line --delete ; done
- name: clean up old Vagrant artifacts
run: |
vagrant destroy edgedb || true
vagrant box remove gusztavvargadr/xubuntu-desktop-2204-lts || true
# https://stackoverflow.com/a/71346341
- name: clean up old GitHub Actions runner build folder
run: |
brew install wget unzip gnu-tar gnu-sed
ls -la ./
rm -rf ./* || true
rm -rf ./.??* || true
ls -la ./
- uses: actions/checkout@v4
- name: show Vagrant version
run: vagrant --version
- name: run vagrant up
@ -48,7 +58,7 @@ jobs:
vboxmanage export edgedb -o edgedb.ovf
sed -i -e '/<BIOS>/,/<\/BIOS>/d' edgedb.ovf
sed -i -e '/<RemoteDisplay enabled="true">/,/<\/RemoteDisplay>/d' edgedb.ovf
gtar -cvf edgedb.ova edgedb.ovf edgedb-disk001.vmdk
tar -cvf edgedb.ova edgedb.ovf edgedb-disk001.vmdk
rm -rf edgedb.ovf edgedb-disk001.vmdk
# ^gtar (to use gnu-tar) instead of macOS tar
- name: upload artifact

26
runner-setup.sh Normal file
View file

@ -0,0 +1,26 @@
#!/bin/bash
set -e
USERNAME=maxkratz
# utilities + sudo
apt-get update
apt-get install -yq sudo tmux htop wget grep sed gpg unzip tar curl
/sbin/adduser $USERNAME sudo
# VirtualBox
wget -O- -q https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --dearmour -o /usr/share/keyrings/oracle_vbox_2016.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle_vbox_2016.gpg] http://download.virtualbox.org/virtualbox/debian bookworm contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list
apt-get update
apt-get install -yq virtualbox-7.0
usermod -a -G vboxusers $USERNAME
# Vagrant
wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/hashicorp.list
apt-get update && apt-get install -yq vagrant
echo "=> Prerequisites installed. Ready for GitHub Actions runner installation."