build: Assert successful completion of cloud-init
Some checks failed
build-image / Build image (push) Failing after 8m0s

This commit is contained in:
2025-07-29 10:30:34 +10:00
parent c2f4b83102
commit 15bdca8f97
2 changed files with 26 additions and 19 deletions

View File

@ -50,23 +50,29 @@ jobs:
steps: steps:
- name: Check out repository code - name: Check out repository code
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Create folder structure - name: Set up build container
run: | run: |
apt-get update && \
apt-get install -y \
gettext \
genisoimage \
libguestfs-tools \
qemu-system-x86 \
qemu-utils
mkdir -p \ mkdir -p \
ubuntu-vm $PWD/ubuntu-vm \
/mnt/vmimage
- name: Download source Ubuntu iso - name: Download source Ubuntu iso
run: | run: |
curl -L \ curl -L \
https://sn.itch.fyi/Repository/iso/Canonical/Ubuntu%20Server%2024.04/ubuntu-24.04-server-cloudimg-amd64.img \ https://sn.itch.fyi/Repository/iso/Canonical/Ubuntu%20Server%2024.04/ubuntu-24.04-server-cloudimg-amd64.img \
-o ubuntu-vm/ubuntu.img \ -o ubuntu-vm/ubuntu.img \
-u ${{ secrets.REPO_USERNAME }}:${{ secrets.REPO_PASSWORD }} -u ${{ secrets.REPO_USERNAME }}:${{ secrets.REPO_PASSWORD }}
qemu-img resize ubuntu-vm/ubuntu.img +5G
- name: Generate seed ISO - name: Generate seed ISO
run: | run: |
apt-get update && \
apt-get install -y \
gettext \
genisoimage
envsubst < cloud-init/user-data.template > cloud-init/user-data envsubst < cloud-init/user-data.template > cloud-init/user-data
genisoimage \ genisoimage \
@ -78,15 +84,8 @@ jobs:
env: env:
ROOT_HASHED_PASSWORD: ${{ secrets.ROOT_HASHED_PASSWORD }} ROOT_HASHED_PASSWORD: ${{ secrets.ROOT_HASHED_PASSWORD }}
PUBLIC_SSHKEY: ${{ secrets.PUBLIC_SSHKEY }} PUBLIC_SSHKEY: ${{ secrets.PUBLIC_SSHKEY }}
- name: Start virtual machine - name: Provision template virtual machine
run: | run: |
apt-get update && \
apt-get install -y \
qemu-system-x86 \
qemu-utils
qemu-img resize ubuntu-vm/ubuntu.img +5G
[ -e /dev/kvm ] && kvm_flag="-enable-kvm" || kvm_flag="" [ -e /dev/kvm ] && kvm_flag="-enable-kvm" || kvm_flag=""
qemu-system-x86_64 \ qemu-system-x86_64 \
@ -100,9 +99,12 @@ jobs:
-net nic \ -net nic \
-net user -net user
qemu-img convert -O qcow2 ubuntu-vm/ubuntu.img ubuntu-vm/ubuntu-compacted.img trap 'guestunmount /mnt/vmimage || true' EXIT
guestmount -a ubuntu-vm/ubuntu.img -i --ro /mnt/vmimage
ls -lash ubuntu-vm [[ -f /mnt/vmimage/var/log/template-generation-success ]] || {
echo "VM provisioning encountered errors - exiting"
exit 1
}
# semrel: # semrel:
# name: Semantic Release # name: Semantic Release

View File

@ -18,7 +18,7 @@ runcmd:
- truncate -s 0 /etc/hostname /etc/machine-id - truncate -s 0 /etc/hostname /etc/machine-id
- rm -f /etc/ssh/ssh_host_* /var/lib/dbus/machine-id - rm -f /etc/ssh/ssh_host_* /var/lib/dbus/machine-id
- ln -s /etc/machine-id /var/lib/dbus/machine-id - ln -s /etc/machine-id /var/lib/dbus/machine-id
- poweroff - touch /var/log/template-generation-success
disable_root: false disable_root: false
users: users:
@ -30,3 +30,8 @@ users:
- ${PUBLIC_SSHKEY} - ${PUBLIC_SSHKEY}
ssh_authorized_keys: ssh_authorized_keys:
- ${PUBLIC_SSHKEY} - ${PUBLIC_SSHKEY}
power_state:
delay: now
mode: poweroff
condition: true