Skip to content

feat(build): build multi-arch images #2987

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 27, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 29 additions & 4 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,42 @@
image: python:3.12

stages:
- build
- deploy
- promote

deploy-images:
stage: deploy
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:$CI_COMMIT_TAG-alpine
- executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG-slim-bullseye --build-arg PYTHON_FLAVOR=slim-bullseye
- executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE/$CI_RUNNER_EXECUTABLE_ARCH:$CI_COMMIT_TAG-alpine
- executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE/$CI_RUNNER_EXECUTABLE_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
- RUNNER_TAG: saas-linux-medium-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

Expand Down