# Building Because this project consumes itself, when there was no `base-runner` image, there was no `containerd-runner` image, which makes this project unable to build using GitHub/Gitea workflows. For that reason, there is a separately maintained set of build scripts under `cicd/`. It serves as the original template for the Gitea workflow (`.gitea/workflows/`). ## Environment Variables Whether executing the build via `cicd/` shell scripts or through Gitea workflows, there are several variables to consider. ### Public These are the variables you are expected to tweak. | Name | Required | Default | Purpose | | ---------------------------- |:--------:| ---------------------- | ------- | | `CONTAINERD_REGISTRY_HOST` | No | `docker.inteligr8.com` | The containerd registry to publish the built container image. | | `CONTAINERD_DEBUG` | No | | Set to any value to enable debug mode. | | `DEBIAN_VERSION` | No | `stable-20260824` | The base version of Debian to use. The `slim` variant is automatically selected. | ### Private These are the variables you are not expected to tweak. | Name | Required | Default | Purpose | | ---------------------------- |:--------:| ---------------------- | ------- | | `CONTAINERD_IMAGE_NAMESPACE` | No | `inteligr8/` | A prefix for the containerd image name. | | `CONTAINERD_IMAGE_NAME` | No | `base-runner` | The containerd image name. | | `CONTAINERD_CMD` | No | `buildah` | The CLI tool to use to build the containerd image name. (e.g. `buildah`, `podman`, or `docker`) | | `CONTAINERD_BUILD_FORMAT` | No | `docker` | The containerd build format for the CLI tool to use. (e.g. `oci` or `docker`) | | `SKOPEO_OPTS` | No | | Extra options to pass the `skopeo` CLI tool. | | `CONTAINERD_CMD_OPTS` | No | | Extra options to pass the containerd CLI build tool. | ## Shell Execution The shell script will build the container and name it according to the variables above. By default, the tag will be the short SHA of the Git commit `HEAD` (current). The tag will have the format: `sha1234567`. This means that if you want to rebuild without any source changes, but using an updated Debian version, you should create a new commit. However, it is not actually necessary. However, we are using a specific version for `DEBIAN_VERSION` for the traceability. If we didn't care, we would just use `stable`. ## GitHub/Gitea Workflow Execution The workflow definition maps some variables to Inteligr8 variables: `INTELIGR8_REGISTRY_HOST` => `CONTAINERD_REGISTRY_HOST` `INTELIGR8_IMAGE_NAMESPACE` => `CONTAINERD_IMAGE_NAMESPACE` Those values are expected to be the same across all projects.