58 lines
2.1 KiB
YAML
58 lines
2.1 KiB
YAML
name: containerd-build
|
|
description: Builds a containerd image.
|
|
inputs:
|
|
registry_host:
|
|
description: A containerd registry host.
|
|
required: false
|
|
default: ${{ vars.INTELIGR8_REGISTRY_HOST }}
|
|
image_namespace:
|
|
description: A containerd image prefix.
|
|
required: false
|
|
default: ${{ vars.INTELIGR8_IMAGE_NAMESPACE }}
|
|
image_name:
|
|
description: A containerd image name, without the host and prefix.
|
|
required: true
|
|
build_opts:
|
|
description: A string of options for the containerd CLI build command.
|
|
required: false
|
|
default: --quiet
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- id: containerd_debug
|
|
uses: ./.gitea/actions/containerd-debug
|
|
- id: skopeo_inspect
|
|
uses: ./.gitea/actions/skopeo-inspect
|
|
with:
|
|
image_name: base-runner
|
|
- id: containerd_build
|
|
working-directory: containerd
|
|
env:
|
|
REGISTRY_HOST: ${{ inputs.registry_host }}
|
|
IMAGE_NAMESPACE: ${{ inputs.image_namespace }}
|
|
IMAGE_NAME: ${{ inputs.image_name }}
|
|
CONTAINERD_CMD: buildah
|
|
CONTAINERD_BUILD_FORMAT: docker
|
|
CONTAINERD_BUILD_OPTS: ${{ inputs.build_opts }}
|
|
CONTAINERD_CMD_DEBUG_OPTS: ${{ steps.containerd_debug.outputs.containerd_cmd_debug_opts }}
|
|
CONTAINERD_IMAGE_EXISTS: ${{ steps.skopeo_inspect.outputs.image_exists }}
|
|
shell: bash
|
|
run: |
|
|
if (( ${CONTAINERD_IMAGE_EXISTS} == "true" )); then
|
|
echo "Container image already built; skipping rebuild"
|
|
else
|
|
GIT_COMMIT_SHORT_SHA=${GITHUB_SHA::8}
|
|
IMAGE_REMOTE_NAME=${REGISTRY_HOST}/${IMAGE_NAMESPACE}${IMAGE_NAME}
|
|
|
|
echo "image_tag=sha${GIT_COMMIT_SHORT_SHA}" >> $GITHUB_OUTPUT
|
|
|
|
echo "Building container image"
|
|
${CONTAINERD_CMD} ${CONTAINERD_CMD_OPTS} ${CONTAINERD_CMD_DEBUG_OPTS} build \
|
|
--format=${CONTAINERD_BUILD_FORMAT} \
|
|
${CONTAINERD_BUILD_OPTS} \
|
|
--tag ${IMAGE_REMOTE_NAME}:sha${GIT_COMMIT_SHORT_SHA}
|
|
outputs:
|
|
image_tag:
|
|
description: The resultant containerd image tag.
|
|
value: ${{ steps.containerd_build.outputs.image_tag }}
|