Files
ermnvldmr.com/ci/scripts/build-golden-image.sh
T
deytenit 19df48e162
packages/kits - next/required / Setup - Stage (push) Successful in 41s
packages/ssg - next/required / Setup - Stage (push) Successful in 40s
packages/stl - next/required / Setup - Stage (push) Successful in 40s
packages/ui - next/required / Setup - Stage (push) Successful in 44s
services/docs - next/required / Setup - Hugo (push) Successful in 4s
services/static - next/required / Setup - Stage (push) Successful in 41s
packages/kits - next/required / Build - Configs & UI (push) Canceled after 0s
packages/kits - next/required / Lint - Kits (push) Canceled after 0s
packages/kits - next/required / Typecheck - Kits (push) Canceled after 0s
packages/kits - next/required / Test - Unit (push) Canceled after 0s
packages/kits - next/required / Build - Storybook (push) Canceled after 0s
packages/kits - next/required / Test - Storybook (push) Canceled after 0s
packages/kits - next/required / Build - Kits (push) Canceled after 0s
packages/ssg - next/required / Build - Configs (push) Canceled after 0s
packages/ssg - next/required / Lint - SSG (push) Canceled after 0s
packages/ssg - next/required / Typecheck - SSG (push) Canceled after 0s
packages/ssg - next/required / Build - SSG (push) Canceled after 0s
packages/stl - next/required / Build - Configs (push) Canceled after 0s
packages/stl - next/required / Lint - STL (push) Canceled after 0s
packages/stl - next/required / Typecheck - STL (push) Canceled after 0s
packages/stl - next/required / Test - STL (push) Canceled after 0s
packages/stl - next/required / Build - STL (push) Canceled after 0s
packages/ui - next/required / Build - Configs (push) Canceled after 0s
packages/ui - next/required / Lint - UI (push) Canceled after 0s
packages/ui - next/required / Typecheck - UI (push) Canceled after 0s
packages/ui - next/required / Test - Unit (push) Canceled after 0s
packages/ui - next/required / Build - Storybook (push) Canceled after 0s
packages/ui - next/required / Test - Storybook (push) Canceled after 0s
packages/ui - next/required / Build - UI (push) Canceled after 0s
services/www - next/required / Setup - Stage (push) Canceled after 46s
services/docs - next/required / Build - Hugo Site (push) Canceled after 0s
services/docs - next/required / Release - Docker Image (push) Canceled after 0s
services/docs - next/required / Deploy - Kubernetes (GitOps) (push) Canceled after 0s
services/docs - next/required / Verify - Production Rollout (push) Canceled after 0s
services/static - next/required / Build - Configs (push) Canceled after 0s
services/static - next/required / Lint - Static (push) Canceled after 0s
services/static - next/required / Typecheck - Static (push) Canceled after 0s
services/static - next/required / Build - Static Site (push) Canceled after 0s
services/static - next/required / Deploy - S3 (push) Canceled after 0s
services/www - next/required / Build - Configs (push) Canceled after 0s
services/www - next/required / Lint - WWW (push) Canceled after 0s
services/www - next/required / Typecheck - WWW (push) Canceled after 0s
services/www - next/required / Build - Storybook (push) Canceled after 0s
services/www - next/required / Test - Unit (push) Canceled after 0s
services/www - next/required / Test - Storybook (push) Canceled after 0s
services/www - next/required / Build - WWW Service (push) Canceled after 0s
services/www - next/required / Build - Docker Image (push) Canceled after 0s
ci: streamline all workflows, use actions mirror and remove vendored bundles
2026-11-08 01:50:51 +03:00

55 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
mkdir -p output-qemu
echo "Downloading official Debian 12 cloud image..."
curl -fsSL -o base.qcow2 https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-genericcloud-amd64.qcow2
echo "Expanding disk image to 10G..."
qemu-img resize base.qcow2 10G
echo "Connecting disk image via NBD..."
sudo modprobe nbd max_part=8
sudo qemu-nbd --connect=/dev/nbd0 base.qcow2
sleep 1
sudo partx -u /dev/nbd0 || true
echo "Mounting disk filesystem..."
sudo mkdir -p /mnt/target
sudo mount /dev/nbd0p1 /mnt/target
echo "Mounting host virtual filesystems and configuring DNS..."
sudo rm -f /mnt/target/etc/resolv.conf
echo "nameserver 1.1.1.1" | sudo tee /mnt/target/etc/resolv.conf
echo "nameserver 8.8.8.8" | sudo tee -a /mnt/target/etc/resolv.conf
sudo mount --bind /dev /mnt/target/dev
sudo mount --bind /dev/pts /mnt/target/dev/pts
sudo mount --bind /proc /mnt/target/proc
sudo mount --bind /sys /mnt/target/sys
echo "Copying provisioner scripts..."
sudo mkdir -p /mnt/target/tmp/scripts
sudo cp ci/packer/scripts/*.sh /mnt/target/tmp/scripts/
sudo cp /opt/ci/assets/k3s /opt/ci/assets/k3s-install.sh /mnt/target/tmp/scripts/
sudo cp /opt/ci/assets/flux-install-local.yaml /mnt/target/tmp/scripts/flux-install.yaml
sudo chmod +x /mnt/target/tmp/scripts/*.sh
echo "Running provisioner scripts in chroot..."
sudo chroot /mnt/target /bin/bash /tmp/scripts/01-base-system.sh
sudo chroot /mnt/target /bin/bash /tmp/scripts/02-install-k3s.sh
sudo chroot /mnt/target /bin/bash /tmp/scripts/03-cleanup.sh
sudo rm -rf /mnt/target/tmp/scripts
echo "Unmounting filesystems..."
sudo umount /mnt/target/sys
sudo umount /mnt/target/proc
sudo umount /mnt/target/dev/pts
sudo umount /mnt/target/dev
sudo umount /mnt/target
sudo qemu-nbd --disconnect /dev/nbd0
echo "Compressing and optimizing qcow2 with 2M cluster size..."
qemu-img convert -f qcow2 -O qcow2 -o cluster_size=2M -c base.qcow2 output-qemu/com-ermnvldmr-debian-12-k3s-amd64.qcow2
echo "Golden image built successfully."