Objective
As part of the Kyma image build spike (kyma-project/lifecycle-manager#2785), a dedicated GitHub Actions workflow was created for lifecycle-manager to build and publish images to ghcr.io/kyma-project/ for fast local testing — especially on Apple M-series (arm64) machines.
The same pattern should be applied to template-operator.
Background
The official Kyma image builder delegates the actual Docker build to an Azure DevOps pipeline via OIDC + GCP Secret Manager. This cross-system round-trip adds significant overhead (ADO queue wait, OIDC bootstrap, no GHA layer cache) and only produces linux/amd64 images. It is required for production due to SLC-29 compliance and Signify image signing.
For local development and PR testing, a direct GitHub Actions build using docker/build-push-action with BuildKit is significantly faster and supports linux/arm64 in a single job (no tag-collision between arch-specific jobs).
Acceptance Criteria
Reference Implementation
See lifecycle-manager image-builder-local.yml — copy and adjust IMAGE_NAME to kyma-project/template-operator.
Objective
As part of the Kyma image build spike (kyma-project/lifecycle-manager#2785), a dedicated GitHub Actions workflow was created for
lifecycle-managerto build and publish images toghcr.io/kyma-project/for fast local testing — especially on Apple M-series (arm64) machines.The same pattern should be applied to
template-operator.Background
The official Kyma image builder delegates the actual Docker build to an Azure DevOps pipeline via OIDC + GCP Secret Manager. This cross-system round-trip adds significant overhead (ADO queue wait, OIDC bootstrap, no GHA layer cache) and only produces
linux/amd64images. It is required for production due to SLC-29 compliance and Signify image signing.For local development and PR testing, a direct GitHub Actions build using
docker/build-push-actionwith BuildKit is significantly faster and supportslinux/arm64in a single job (no tag-collision between arch-specific jobs).Acceptance Criteria
image-builder-local.yml) is created to build and publishtemplate-operatorimages toghcr.io/kyma-project/template-operator.linux/arm64andlinux/amd64.pull_request_target(non-draft) andpushtomain.permissions: {}at workflow level).pull_request_target.type=ghalayer cache for fast repeat builds.pr-<number>+sha-<short>for PRs;latest+sha-<short>for main.europe-docker.pkg.dev.Reference Implementation
See lifecycle-manager image-builder-local.yml — copy and adjust
IMAGE_NAMEtokyma-project/template-operator.