.gitlab/ci/build_releng.sh:
Add `print_package_version_metric()` to generically print a version_info metric for a given package name and its
description.
Change `create_metrics()` to rename all metrics (and their labels) in accordance with new expectations in
arch-release-promotion.
Change the size related metrics to provide the data in bytes instead of mebibytes.
* sespiros/issues/9:
Fix build script for gitlab CI
Address comments
Add ipxe generation and signing to the build script
Add script for offline generation of the ipxe intermediate artifact
.gitlab/ci/build_releng.sh:
Adjust the creation of the info metrics to use a `"description"` instead of a `"name"` label.
This way it can be picked up by arch-release-promotion:
label://gitlab.archlinux.org/archlinux/arch-release-promotion
.gitlab-ci.yml:
Replace the local include of a gitlab-ci description (and the accompanying script) with an include of
archlinux/ci-scripts.
Copy potentially existing keys in script target instead of before_script target. This way we get to remove before_script
and only need to specify which script from ci-scripts we are calling in the scripts target, instead of redoing all of
before_script.
Remove after_script target, as it is taken care of in ci-scripts.
.gitlab-ci.yml:
Add a `prepare_release` job that exports a `TAG` environment variable based on YYYY.MM.DD.CI_JOB_ID format and a
`VERSION` environment variable based on YYYY.MM.DD format for later consumption.
Add a `create_release` job to craft a release based on the `TAG` environment variable (exported by the `prepare_release`
job) if the `SCHEDULED_PUBLISH` environment variable is set to `TRUE`.
Add an asset link pointing at the build artifacts.
Make use of upstream's release-cli for creating a release in the `create_release` job.
Implements #14
README.rst:
Add a section explaining the different types of release artifacts (build artifacts and promotion artifacts).
Add relevant issue links for still unresolved topcis.
.gitlab/ci/build_releng.sh:
Move the mkarchiso build artifacts to a directory structure in the output directory, that reflects a
<type>/<type>-<version> setup, as discussed in #11.
Add `move_build_artifacts()` to move mkarchiso's build artifacts to a type based directory structure.
Change `copy_ipxe_binaries()` to copy the files to a type based directory structure and create checksums.
Add `set_ownership()` to generalize the change in ownership, if the script is run using sudo.
Change `run_mkarchiso()` to not implicitely copy ipxe binaries and create checksums for them, but instead call
`move_build_artifacts()`.
Call `copy_ipxe_binaries()` and `set_ownership()` globally, after `run_mkarchiso()` has finished.
Implements #13
The grep output is more concise and it is easier to see which output belongs to which file.
Remove debug leftovers from .gitlab/ci/build_releng.sh and template/prepare_vm.yml.
* issues/7:
Add documentation on iPXE code signing
Add copying of codesigning key pair
Use and validate local codesigning key pair
Add script to create new codesigning key pair
.gitlab-ci.yml:
Copy codesigning key pair (SECRET_CODESIGNING_CERT_FILE and SECRET_CODESIGNING_KEY_FILE) to the local directory, if they
exists as secret variables.
.gitlab/ci/build_releng.sh:
Permit the use of a local codesigning key pair and validate the certificate.
Add `select_codesigning_key()` to allow selecting a local codesigning key pair (codesign.crt and codesign.key in the
root of the repository), else creating an ephemeral codesigning key pair.
Add `check_codesigning_cert_validity()` to check the codesigning certificate's validity and fail if it is valid for less
than 90 days.
Move `create_ephemeral_pgp_key()`, `select_codesigning_key()` and `check_codesigning_cert_validity()` into the global
scope of the script and call them before calling `run_mkarchiso()`.
Add the trap for calling `cleanup()` before the check of whether the script is run as root.
Simplify conditional statements.
.gitlab/ci/build_releng.sh:
Add `copy_ipxe_binaries()` to copy the relevant iPXE binaries to an ipxe directory in the output directory.
Change `run_mkarchiso()` to also call `copy_ipxe_binaries()` and create checksums for the iPXE binaries.
Change `create_metrics()` to create info metrics for the version of archiso used for the build, the kernel version used
in the created image and the ipxe version used when exporting the ipxe binaries.
.gitlab-ci.yml:
Add QEMU_COPY_ARTIFACTS_TIMEOUT to variables with a value of 120 (defaults to 60) to not run into timeouts when copying
the final artifacts to the output directory.
* issues/8:
Add gitlab CI for project
Add gitlab CI to include for running jobs inside a VM
Add script to build releng profile in VM
Add simple Makefile for lint and build jobs
Add consolidated build-host.sh
Add gitignore
Add editorconfig integration
.gitlab-ci.yml:
Add initial gitlab CI for project to allow for check (linting) and build stages, while preserving artifacts for two days
and retaining metrics on the builds.
template/prepare_vm.yml:
Add simple CI script to include in others, which offers preparing a QEMU VM in a container and running a build script
inside it.