Use VM runners[1] for building

Building inside a TCG accelerated qemu VM is slow and painful, but it is
the only option when running in a non-privileged container.

arch-boxes has been built inside a KVM accelerated VMs ("VM runner") for
over 11 months[2] and recently the MR[1] was merged into the
infrastructure repo. With it now being a official part of arch's
infrastructure we should switch to it and get much faster builds.

Doing some quick testing, the whole pipeline is now roughly ~29-84
minutes faster (taking between 7-9 minutes, instead of 36-93 minutes).

[1] https://gitlab.archlinux.org/archlinux/infrastructure/-/merge_requests/385
[2] 3bda5b26a6

Fix #161
This commit is contained in:
Kristian Klausen 2022-08-08 16:56:45 +02:00
parent 7bc4c54245
commit a2e886b4b9
No known key found for this signature in database
GPG key ID: E2BE346E410366C3

View file

@ -2,20 +2,6 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
# NOTE: most functionality (apart from building) is abstracted by this include
include:
- project: 'archlinux/ci-scripts'
ref: master
file: '/prepare_archiso_vm.yml'
variables:
BUILD_SCRIPT: ./.gitlab/ci/build_archiso.sh
PACKAGE_LIST: arch-install-scripts bash dosfstools e2fsprogs erofs-utils gnupg grub jq libarchive libisoburn mtools openssl qemu-headless squashfs-tools zsync
QEMU_BUILD_TIMEOUT: 2400
QEMU_COPY_ARTIFACTS_TIMEOUT: 120
QEMU_VM_MEMORY: 3072
ARCHISO_COW_SPACE_SIZE: 2g
stages:
- check
- build
@ -33,6 +19,19 @@ check:
stage: check
interruptible: true
.build:
artifacts:
reports:
metrics: output/metrics.txt
before_script:
- pacman -Sy --needed --noconfirm archlinux-keyring
- pacman -Syu --needed --noconfirm arch-install-scripts bash dosfstools e2fsprogs erofs-utils gnupg grub jq libarchive libisoburn mtools openssl qemu-headless squashfs-tools zsync
script:
- ./.gitlab/ci/build_archiso.sh ${BUILD_SCRIPT_ARGS}
stage: build
tags:
- vm
build_short:
extends: .build
parallel:
@ -59,8 +58,6 @@ build_long:
- BUILD_SCRIPT_ARGS: baseline netboot
- BUILD_SCRIPT_ARGS: releng iso
- BUILD_SCRIPT_ARGS: releng netboot
tags:
- fast-single-thread
only:
refs:
- master