From 5c13f35cd9167a34b991e17073b76eb4fd6e3896 Mon Sep 17 00:00:00 2001
From: Alexander Wellbrock <a.wellbrock@mailbox.org>
Date: Mon, 8 Aug 2022 12:42:30 +0200
Subject: [PATCH] add README

---
 README.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)
 create mode 100644 README.md

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..c88efdf
--- /dev/null
+++ b/README.md
@@ -0,0 +1,49 @@
+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 
+
+```yaml
+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`.
+
+```yaml
+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
+```
-- 
GitLab