Skip to content
Snippets Groups Projects
Select Git revision
  • ci/tekton-gobuild
  • main default protected
  • renovate/hcloud-exporter-4.x
  • renovate/gitlab-runner-0.x
  • renovate/gcr.io-projectsigstore-cosign-2.x
  • renovate/docker.io-bitnami-kubectl-1.x
  • renovate/docker.io-earthly-earthly-0.x
  • renovate/siderolabs-kubelet-1.33.x
  • renovate/cloudflare-5.x
  • renovate/redis-21.x
  • renovate/mariadb-21.x
  • renovate/kubernetes-go
  • renovate/external-dns-1.x
  • renovate/longhorn-1.8.x
  • renovate/docker.io-library-alpine-3.x
  • renovate/kubernetes-kubernetes-1.x
  • renovate/kubernetes-sigs-cluster-api-1.x
  • renovate/prometheus-json-exporter-0.x
  • renovate/tektoncd-cli-0.x
  • renovate/quay.io-shivering-isles-postfix-3.x
  • renovate/github.com-prometheus-common-0.x
  • v25.07
  • v25.06
  • v25.05
  • v25.04
  • v25.03
  • v25.02
  • v25.01
  • v24.12
  • v24.11
  • v24.10
  • v24.09
  • v24.08
  • v24.07
  • v24.06
  • v24.05
  • v24.04
  • v24.03
  • v24.02
  • v24.01
  • v23.12
41 results

infrastructure-gitops

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