Commit Graph

46 Commits

Author SHA1 Message Date
David Runge 357009ee87
Merge remote-tracking branch 'nl6720/gpg-sender'
* nl6720/gpg-sender:
  .gitlab/ci/build_archiso.sh: use mkarchiso's -G option
2021-09-05 16:52:21 +02:00
nl6720 6b786d6461
.gitlab/ci/build_archiso.sh: use mkarchiso's -G option
Set gpg's --sender.

See archiso!203.
2021-08-25 13:51:06 +03:00
David Runge 03a934410b
Merge branch 'issues/16'
* issues/16:
  Add typing and standardized labels for metrics
2021-08-02 21:33:03 +02:00
David Runge ef736f4bf0
Add typing and standardized labels for metrics
.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.
2021-08-02 20:30:39 +02:00
David Runge 9bc31e37e4
Merge remote-tracking branch 'sespiros/issues/9'
* 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
2021-08-02 20:29:24 +02:00
Spyros Seimenis 520480841a Fix build script for gitlab CI 2021-08-02 16:44:51 +00:00
Spyros Seimenis 3ea4136158 Address comments 2021-08-02 16:44:51 +00:00
Spyros Seimenis 59f9bd7760 Add ipxe generation and signing to the build script 2021-08-02 16:44:51 +00:00
Spyros Seimenis 0c334e3fe1 Add script for offline generation of the ipxe intermediate artifact 2021-08-02 16:44:51 +00:00
David Runge 8fe393ee7d
Merge branch 'issues/15'
* issues/15:
  Adjust info metrics for JSON payload
2021-07-26 10:41:13 +02:00
David Runge aaae7f04de
Adjust info metrics for JSON payload
.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
2021-07-25 23:00:36 +02:00
David Runge 422738de63
Merge branch 'issues/8'
* issues/8:
  Remove template dir
  Replace local gitlab-ci include with ci-scripts
2021-07-02 18:12:47 +02:00
David Runge 4f1a29c4ff
Remove template dir
template/:
Remove template dir as it is fully replaced by including archlinux/ci-scripts via gitlab-ci.
2021-07-02 14:49:32 +02:00
David Runge 9146196a1e
Replace local gitlab-ci include with ci-scripts
.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.
2021-07-02 14:49:15 +02:00
David Runge a0f37bdb8a
Merge branch 'issues/14'
* issues/14:
  Add job to create a release on a schedule
  CI: Add SPDX license identifier for GPL-3.0-or-later
2021-06-12 20:41:15 +02:00
David Runge 90f6b56dbf
Add job to create a release on a schedule
.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
2021-06-12 19:48:45 +02:00
David Runge cd88304c6c
CI: Add SPDX license identifier for GPL-3.0-or-later
.gitlab/ci/build_releng.sh:
Add SPDX license identifier for GPL-3.0-or-later to header of script.
2021-06-12 19:48:40 +02:00
David Runge f3b03c7dfd
Merge branch 'issues/13'
* issues/13:
  Add documentation on release artifacts
  Move build artifacts to per-type release directories
2021-05-18 18:09:20 +02:00
David Runge 19d70eda9e
Add documentation on release artifacts
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.
2021-05-18 09:32:16 +02:00
David Runge 318e820fc0
Move build artifacts to per-type release directories
.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
2021-05-17 21:32:44 +02:00
David Runge be2c4ccbd0
Merge branch 'issues/12'
* issues/12:
  build-host: Configurable iso location
2021-05-17 21:29:43 +02:00
David Runge fba7c073ab
build-host: Configurable iso location
template/build-host.sh:
Allow modification of the iso directory location on the selected mirror, using the ISO_DIR environment variable.

Closes #12
2021-05-17 20:09:20 +02:00
David Runge c7d639b406
Merge remote-tracking branch 'nl6720/no-ls'
* nl6720/no-ls:
  .gitlab/ci/build_releng.sh: replace ls and cat with grep
2021-05-17 13:38:30 +02:00
nl6720 15ded01c9c
.gitlab/ci/build_releng.sh: replace ls and cat with grep
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.
2021-05-17 12:06:54 +03:00
David Runge 4362ecf756
Merge remote-tracking branch 'nl6720/no-x'
* nl6720/no-x:
  template/build-host.sh: remove -x to improve readability of the job output
2021-05-16 17:22:28 +02:00
nl6720 0ff704a406
template/build-host.sh: remove -x to improve readability of the job output
`bash -x` makes the output very verbose making it hard to read.
2021-05-16 15:45:35 +03:00
David Runge 34ad9f8756
Merge branch 'issues/7'
* 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
2021-05-16 13:59:28 +02:00
David Runge e7d931347a
Add documentation on iPXE code signing
README.rst:
Add documentation on iPXE code signing and how to generate a new codesigning key pair.
2021-05-16 11:39:17 +02:00
David Runge 3579a2ad6b
Add copying of 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.
2021-05-16 11:35:32 +02:00
David Runge cccd8d761c
Use and validate local codesigning key pair
.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.
2021-05-16 11:31:36 +02:00
David Runge eef56f2300
Add script to create new codesigning key pair
codesigning/create_codesigning_key_pair.sh:
Add script to conveniently create a codesigning key pair.
2021-05-16 10:33:32 +02:00
David Runge b0f975c904
Merge branch 'issues/10'
* issues/10:
  Add function to copy iPXE binaries
  Increase timeout for copying artifacts
  Add ipxe to list of packages for VM
2021-05-15 20:57:54 +02:00
David Runge c555e1b8a4
Add function to copy iPXE binaries
.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.
2021-05-15 20:14:18 +02:00
David Runge 291d50659a
Increase timeout for copying artifacts
.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.
2021-05-15 17:51:38 +02:00
David Runge 6bb39a45dd
Add ipxe to list of packages for VM
.gitlab-ci.yml:
Add ipxe to the list of installed packages in the VM, so that its binaries can be turned into release artifacts.
2021-05-15 16:17:44 +02:00
David Runge 7dd8e7412a
Merge branch 'issues/8'
* 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
2021-05-15 15:52:45 +02:00
David Runge 2e47df7dfe
Add gitlab CI for project
.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.
2021-05-15 14:58:01 +02:00
David Runge 9a72eec8ea
Add gitlab CI to include for running jobs inside a VM
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.
2021-05-15 14:57:58 +02:00
David Runge 6a84c9f59e
Add script to build releng profile in VM
.gitlab/ci/build_releng.sh:
Add a script that builds the iso, netboot and bootstrap buildmodes for the releng profile.
2021-05-15 14:57:45 +02:00
David Runge b79da9a7c8
Add simple Makefile for lint and build jobs
Makefile:
Add a simple Makefile that allows to lint CI scripts and build artifacts using .gitlab/ci/build_releng.sh.
2021-05-15 12:45:42 +02:00
David Runge d0003e2f78
Add consolidated build-host.sh
template/build-host.sh:
Add recently consolidated build-host.sh script, so that it can be used in a local include.
2021-05-15 12:28:41 +02:00
David Runge 96699105a7
Add gitignore
.gitignore:
Add initial gitignore file to ignore the default output directory.
2021-05-15 12:26:42 +02:00
David Runge 6a0aa0dffe
Add editorconfig integration
.editorconfig:
Add editorconfig integration.
2021-05-15 12:26:06 +02:00
David Runge ea0342c270 Merge branch 'license' into 'master'
Add LICENSE and initial README

See merge request archlinux/releng!1
2020-08-03 20:24:08 +00:00
David Runge 66771c0be3
Add LICENSE and initial README
README.md:
Remove dummy README

README.rst:
Add initial README stating license and purpose.

LICENSE:
Add GPL-3.0
2020-08-03 22:21:52 +02:00
Sven-Hendrik Haase 20889440be Initial commit 2020-07-31 10:25:38 +00:00