Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/.gitlab/ci
AgeCommit message (Collapse)Author
2021-05-13ci: Consolidate build-host scriptDavid Runge
.gitlab/ci/build-host.sh: Change all script-local variables to lower-case and make some of them overridable using environment variables (by providing defaults). Break down overly long commands by splitting them into a list of strings. Use local variables where possible. Change `main()` to use rsync instead of cp to copy the project to the build location more generically. Change `main()` to use rsync instead of cp to copy the build artifacts on the VM from the project's build directory to the output. Remove all unnecessary `function` keywords for function declarations. Replace the dependency on libisoburn's `xorriso` with libarchive's `bsdtar` and util-linux's `blkid` in `prepare_boot()`. Add `print_section_start()` and `print_section_end()` to reduce code duplication and error potential when printing lines for gitlab's collapsible sections (https://docs.gitlab.com/ee/ci/jobs/#custom-collapsible-sections). Document the script's behavior and expectations. Document the understood environment variables and add links to documentation on understood units (in case of size units).
2021-05-13ci: consolidate build scriptDavid Runge
.gitlab/ci/build-inside-vm.sh: Add `print_section_start()` and `print_section_end()` to remove code duplication when printing gitlab collapsible sections (https://docs.gitlab.com/ee/ci/jobs/#custom-collapsible-sections). Document further script dependencies. Remove the temporary directory base (located in the project directory) instead of only the tempdir. Simplify setting file and directory ownership when running with sudo, by only doing it once, recursively on the output directory. Make the script's output more verbose by using verbose flags for removal, ownership changes and zsyncmake actions and by displaying e.g. created metrics and checksum files. Change `create_metrics()` to output to a `metrics.txt` by default. Change `create_checksums()` to create the checksums relative to the files.
2021-05-11ci: build based on buildmodesDavid Runge
.gitlab/ci/build-inside-vm.sh: Expand the script to allow building based on mkarchiso's buildmodes. Accept two parameters now: profile and buildmode. Add gitlab collapsable sections by adding specific printfs for it to all functions. Add extglob to be able to more specifically target files. Change `create_checksums()` to also generate the legacy md5 and sha1 checksums. Change `create_checksums()` and `create_zsync_delta()` to accept and process an unspecified amount of files as parameters. Change `create_zsync_delta()` to lower the blocksize when creating a file for the bootstrap image. Change `create_metrics()` to create metrics depending on build mode. Rename `create_temp_pgp_key()` to `create_ephemeral_pgp_key()`. Add `create_ephemeral_codesigning_key()` to create a codesigning key, that is used to sign the netboot artifacts. Change `run_mkarchiso()` to also create an ephemeral codesigning key before running mkarchiso and to run `create_checksums()` and `create_zsync_delta()` with files depending on build mode. .gitlab/ci/build-host.sh: Call `build-inside-vm.sh` using the PROFILE and BUILDMODE environment variables as parameters.
2021-05-06Increase timeout for initial prompt in build VMDavid Runge
.gitlab/ci/build-host.sh: Increase the allowed timeout for reaching the initial prompt in the build VM from 30 to 60 seconds. Fixes #129
2021-05-06Use QEMU 6.x optionsDavid Runge
.gitlab/ci/build-host.sh: Change parameters to qemu's `-drive` option to make use of the explicit `read-only=on`, as the implicit `read-only` is now obsolete.
2021-05-01Add ephemeral signing key to CI setupDavid Runge
.gitlab/ci/build-inside-vm.sh: Create an ephemeral signing key for signing the rootfs image (e.g. squashfs or erofs) when building the profiles. Implements #125
2021-04-30Add package count, El Torito EFI image size and initramfs image sizes to ↵nl6720
GitLab metrics Metrics are now collected in build-inside-vm.sh since the files in question are in the work directory. Implements #101 and #111.
2021-04-30Fix shellcheck complains in CI scriptsDavid Runge
.gitlab/ci/build-host.sh: Change the readonly TMPDIR variable to a global tmpdir variable and set it in the `init()` function. .gitlab/ci/build-inside-vm.sh: Change assigning the readonly tmpdir variable directly to assigning it after declaring it. Change `cleanup()` and `create_zsync_delta()` to use bash-style statements and also check whether SUDO_GID is set before using it.
2021-03-26.gitlab/ci/build-host.sh: install erofs-utilsnl6720
Allow building ISOs with EROFS airootfs images in CI.
2021-03-21.gitlab/ci/build-host.sh: Do not upgrade packages with files in ↵nl6720
/usr/lib/modules/ Packages with files in /usr/lib/modules/ depend on the current kernel, thus they should not be updated.
2021-03-14.gitlab/ci/build-host.sh: increase mksquashfs timeout to 40 minutesnl6720
Some mksquashfs runs take a very long time and 1000 seconds might not be enough.
2021-03-14Create zsync control file for delta downloadsJonathon Fernyhough
2021-01-31build-host.sh: Style and syntax fixesDavid Runge
.gitlab/ci/build-host.sh: Set shebang to /usr/bin/env bash to be more portable/flexible. Turn all posix statements ([]) to bash style statements ([[]]), as we are using bash. Terminate the list of parameters to rm or cp with --. Replace the implementation of finding a local ISO to use with one that relies on a sorted list of potential images. Use virtio-net-pci for networking with qemu. Set the cow_spacesize to 4G for the archiso environment. Use --needed in the call to pacman to not re-install already up-to-date targets. Attempt a full system upgrade (but ignore the kernel). Increase the timeout for when installing packages to the archiso environment using pacman to 120s, as a system upgrade is being done as well. Use systemctl poweroff -i to shut down the virtual machine as it is more future proof and robust.
2021-01-31Add scripts for continuous integrationDavid Runge
.gitlab/ci/build-host.sh: Add script to be run in a container with access to qemu. It is a slight modification of arch-boxes' build-host.sh script to cater to the specific archiso requirements. .gitlab/ci/build-inside-vm.sh: Add script to be run in virtualized environment, established by build-host.sh. This script builds the actual archiso profiles and creates checksum for the resulting image files.