Skip to content
Snippets Groups Projects
Select Git revision
  • 6ee4abe79e04dba47e3c2ff65e69d0910859ff9b
  • main default protected
  • rfc-external-artifact
  • release/v2.6.x
  • conform-k8s-1.33
  • release/v2.5.x
  • release/v2.4.x
  • remove-notation-validation
  • release/v2.3.x
  • release/v2.2.x
  • RFC
  • fix-commit-log
  • flux-audit
  • release/v2.1.x
  • context-ns
  • ksm-dashboard
  • rfc-passwordless-git-auth
  • release/v2.0.x
  • rfc-gating
  • release/v0.27.4
  • rfc-0003
  • v2.6.4 protected
  • v2.6.3 protected
  • v2.6.2 protected
  • v2.6.1 protected
  • v2.6.0 protected
  • v2.5.1 protected
  • v2.5.0 protected
  • v2.4.0 protected
  • v2.3.0 protected
  • v2.2.3 protected
  • v2.2.2 protected
  • v2.2.1 protected
  • v2.2.0 protected
  • v2.1.2 protected
  • v2.1.1 protected
  • v2.1.0 protected
  • v2.0.1 protected
  • v2.0.0 protected
  • v2.0.0-rc.5 protected
  • v2.0.0-rc.4 protected
41 results

install

build-ah-engine

An opinionated utility container for building container images using podman together with gitlab-ci template(s) for reproducible CI/CD pipelines.

The utility allows for multi-architecture builds of container images and their oci manifests. Either on real hardware or emulated using QEMU.

Note: while easier to use QEMU-based build might be substantially slower for certain types of builds.

Basic usage

The CI-pipeline of this project illustrates how the template and it's container are used. A minimal x86

include:
  # On same gitlab instance
  - local: /gitlab-ci-template.yml
  # On remote gitlab instance
  - remote: https://git.shivering-isles.com/container-library/build-ah-engine/-/raw/2.1.0/gitlab-ci-template.yml

variables:
  CI_REGISTRY_IMAGE_VERSION: "1.0.0"

Multi-arch example

The variable CI_CONTAINER_BUILD_ARCHS controls which architectures to include. It's a :-separated list of supported architectures. If the job is picked up by a runner of differing architectures, QEMU is used to cross-compile the container image. On matching architectures the build is done natively. Which runner executes a certain job can be controlled via the jobs tags.

include:
  # On same gitlab instance
  - local: /gitlab-ci-template.yml
  # On remote gitlab instance
  - remote: https://git.shivering-isles.com/container-library/build-ah-engine/-/raw/2.1.0/gitlab-ci-template.yml

variables:
  CI_REGISTRY_IMAGE_VERSION: "1.0.0"
  CI_CONTAINER_BUILD_ARCHS: "amd64:arm64"

container-build-x86_64:
  tags:
    - x86_64

container-build-arm64:
  tags:
    - arm64