Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/.gitlab/ci/build-inside-vm.sh
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab/ci/build-inside-vm.sh')
-rwxr-xr-x.gitlab/ci/build-inside-vm.sh39
1 files changed, 39 insertions, 0 deletions
diff --git a/.gitlab/ci/build-inside-vm.sh b/.gitlab/ci/build-inside-vm.sh
new file mode 100755
index 0000000..dbaadea
--- /dev/null
+++ b/.gitlab/ci/build-inside-vm.sh
@@ -0,0 +1,39 @@
+#!/usr/bin/env bash
+#
+# This script is run within a virtual environment to build the available archiso profiles and create checksum files for
+# the resulting images.
+# The script needs to be run as root and assumes $PWD to be the root of the repository.
+
+readonly orig_pwd="${PWD}"
+readonly output="${orig_pwd}/output"
+readonly tmpdir="$(mktemp --dry-run --directory --tmpdir="${orig_pwd}/tmp")"
+
+cleanup() {
+ # clean up temporary directories
+ if [ -n "${tmpdir:-}" ]; then
+ rm -rf "${tmpdir}"
+ fi
+}
+
+create_checksums() {
+ # create checksums for a file
+ # $1: a file
+ sha256sum "${1}" >"${1}.sha256"
+ sha512sum "${1}" >"${1}.sha512"
+ b2sum "${1}" >"${1}.b2"
+ if [ -n "${SUDO_UID:-}" ]; then
+ chown "${SUDO_UID}:${SUDO_GID}" "${1}"{,.b2,.sha{256,512}}
+ fi
+}
+
+run_mkarchiso() {
+ # run mkarchiso
+ # $1: template name
+ mkdir -p "${output}/${1}" "${tmpdir}/${1}"
+ ./archiso/mkarchiso -o "${output}/${1}" -w "${tmpdir}/${1}" -v "configs/${1}"
+ create_checksums "${output}/${1}/"*.iso
+}
+
+trap cleanup EXIT
+
+run_mkarchiso "${1}"