~xenrox/builds

9051b7481a7e51625e624fc7dde39e41ee5536dd — Thorben Günther 3 years ago
Add image build scripts for Arch and Alpine
2 files changed, 92 insertions(+), 0 deletions(-)

A alpine/build.yml
A archlinux/build.yml
A  => alpine/build.yml +48 -0
@@ 1,48 @@
image: alpine/edge
packages:
  - e2fsprogs
  - qemu-img
  - qemu-system-x86_64
  - rsync
  - sfdisk
sources:
  - https://git.sr.ht/~sircmpwn/builds.sr.ht
environment:
  arch: x86_64
  release: edge
  slaves:
    - deploy@xenrox.net
secrets:
  - 6f4391b6-9dd6-44fa-b274-53aa897e41f0
triggers:
  - action: email
    condition: failure
    to: Thorben Günther <admin@xenrox.net>
tasks:
  - genimg: |
      cd builds.sr.ht/images/alpine/$release
      sudo ./genimg $arch
  - kvm: |
      if grep -i amd /proc/cpuinfo
      then
          sudo modprobe kvm_amd
      else
          sudo modprobe kvm_intel
      fi
      sleep 1
      sudo chown build:build /dev/kvm
  - sanity-check: |
      cd builds.sr.ht
      MEMORY=1024 ./images/control alpine/$release sanity-check
  - deploy: |
      cd builds.sr.ht/images/alpine/$release
      echo "StrictHostKeyChecking=no" >> ~/.ssh/config
      for server in "${slaves[@]}"
      do
        ssh $server mkdir -p /var/lib/images/alpine/$release/$arch
        rsync -rzzP $arch/root.img.qcow2 \
          ${server}:/var/lib/images/alpine/$release/$arch/new_root.img.qcow2
        ssh $server \
          mv /var/lib/images/alpine/$release/$arch/new_root.img.qcow2 \
             /var/lib/images/alpine/$release/$arch/root.img.qcow2
      done

A  => archlinux/build.yml +44 -0
@@ 1,44 @@
image: archlinux
packages:
  - arch-install-scripts
  - qemu-headless
  - procps-ng
  - rsync
  - reflector
  - syslinux
sources:
  - https://git.sr.ht/~sircmpwn/builds.sr.ht
environment:
  arch: x86_64
  slaves:
    - deploy@xenrox.net
secrets:
  - 6f4391b6-9dd6-44fa-b274-53aa897e41f0
triggers:
  - action: email
    condition: failure
    to: Thorben Günther <admin@xenrox.net>
tasks:
  - genimg: |
      cd builds.sr.ht/images/archlinux
      sudo sed -e 's/IgnorePkg.*/#IgnorePkg/' -i /etc/pacman.conf
      sudo ./genimg
  - sanity-check: |
      cd builds.sr.ht
      if [ -e /dev/kvm ]
      then
          MEMORY=1024 ./images/control archlinux sanity-check
      else
          echo "KVM unavailable, skipping sanity check"
      fi
  - deploy: |
      cd builds.sr.ht/images/archlinux
      echo "StrictHostKeyChecking=no" >> ~/.ssh/config
      for server in "${slaves[@]}"
      do
        rsync -rzzP $arch/root.img.qcow2 \
          ${server}:/var/lib/images/archlinux/root.img.qcow2-new
        ssh $server \
          mv /var/lib/images/archlinux/root.img.qcow2-new \
             /var/lib/images/archlinux/$arch/root.img.qcow2
      done