1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
image: python:3.14
stages:
- build
- deploy
- promote
build-images:
stage: build
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
script:
- executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE/$OS_ARCH:$CI_COMMIT_TAG-alpine
- executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE/$OS_ARCH:$CI_COMMIT_TAG-slim-bullseye --build-arg PYTHON_FLAVOR=slim-bullseye
rules:
- if: $CI_COMMIT_TAG
tags:
- $RUNNER_TAG
parallel:
matrix:
# See tags in https://docs.gitlab.com/ee/ci/runners/hosted_runners/linux.html
- RUNNER_TAG: saas-linux-medium-amd64
OS_ARCH: linux/amd64
- RUNNER_TAG: saas-linux-medium-arm64
OS_ARCH: linux/arm64
deploy-images:
stage: deploy
image:
name: mplatform/manifest-tool:alpine-v2.0.4@sha256:38b399ff66f9df247af59facceb7b60e2cd01c2d649aae318da7587efb4bbf87
entrypoint: [""]
script:
- manifest-tool --username $CI_REGISTRY_USER --password $CI_REGISTRY_PASSWORD push from-args
--platforms linux/amd64,linux/arm64
--template $CI_REGISTRY_IMAGE/OS/ARCH:$CI_COMMIT_TAG-alpine
--target $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG-alpine
- manifest-tool --username $CI_REGISTRY_USER --password $CI_REGISTRY_PASSWORD push from-args
--platforms linux/amd64,linux/arm64
--template $CI_REGISTRY_IMAGE/OS/ARCH:$CI_COMMIT_TAG-slim-bullseye
--target $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG-slim-bullseye
rules:
- if: $CI_COMMIT_TAG
tag-latest:
stage: promote
image:
name: gcr.io/go-containerregistry/crane:debug
entrypoint: [""]
script:
- crane auth login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- crane tag $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG-alpine ${CI_COMMIT_TAG} # /python-gitlab:v1.2.3
- crane tag $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG-alpine latest # /python-gitlab:latest
- crane tag $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG-alpine alpine # /python-gitlab:alpine
- crane tag $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG-slim-bullseye slim-bullseye # /python-gitlab:slim-bullseye
rules:
- if: $CI_COMMIT_TAG
|