steps: - id: 'Setup Buildx for Multi-Architecture Builds' name: 'gcr.io/cloud-builders/docker' args: ['buildx', 'create', '--driver', 'docker-container', '--name', 'multiarch', '--use'] - id: 'Build and Push Image to Artifact Registry' name: 'gcr.io/cloud-builders/docker' entrypoint: 'bash' args: - '-c' - | docker buildx build --platform linux/amd64,linux/arm64 \ -t ${_AR_REGION}-docker.pkg.dev/$PROJECT_ID/${_AR_REPO_NAME}/${_IMAGE_NAME}:latest \ -f Dockerfile \ --push ctx - id: 'Create and Push Image to GitHub Container Registry' name: 'gcr.io/cloud-builders/docker' entrypoint: 'bash' secretEnv: ['GH_PAT'] args: - '-c' - | echo $$GH_PAT | docker login ghcr.io -u $_REGISTRY_USER --password-stdin && \ docker buildx imagetools create \ -t ghcr.io/$_REGISTRY_USER/$_IMAGE_NAME:latest \ ${_AR_REGION}-docker.pkg.dev/$PROJECT_ID/${_AR_REPO_NAME}/${_IMAGE_NAME}:latest && \ # Tag the image with the branch name (e.g., '3') docker buildx imagetools create \ -t ghcr.io/$_REGISTRY_USER/$_IMAGE_NAME:3 \ ${_AR_REGION}-docker.pkg.dev/$PROJECT_ID/${_AR_REPO_NAME}/${_IMAGE_NAME}:latest && \ docker logout ghcr.io availableSecrets: secretManager: - versionName: projects/$PROJECT_ID/secrets/alpine-cli-ghcr-token/versions/latest env: 'GH_PAT' substitutions: _IMAGE_NAME: 'alpine-cli' _BRANCH: '3' _REGISTRY_USER: 'jswank' options: logging: CLOUD_LOGGING_ONLY substitutionOption: 'ALLOW_LOOSE'