aboutsummaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml47
1 files changed, 41 insertions, 6 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 24a4ac8..83929ff 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,3 +1,7 @@
+stages:
+ - test
+ - deploy
+ - container-build
variables:
DEBIAN_FRONTEND: noninteractive
@@ -275,14 +279,45 @@ release-job:
url: '${CI_PROJECT_URL}/-/jobs/${TAR_JOB_ID}/artifacts/file/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.tar.gz'
build-container:
- stage: deploy
+ variables:
+ TAG: latest
+ stage: container-build
+ parallel:
+ matrix:
+ - ARCH: amd64
+ - ARCH: arm64
+ - ARCH: s390x
+ tags:
+ - $ARCH
image:
- name: gcr.io/kaniko-project/executor:v1.14.0-debug
+ name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
script:
- - /kaniko/executor
+ - if [ -n "$CI_COMMIT_TAG" ]; then TAG="$CI_COMMIT_TAG"; fi
+ - >-
+ /kaniko/executor
--context "${CI_PROJECT_DIR}"
--dockerfile "${CI_PROJECT_DIR}/Dockerfile"
- --destination "${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}"
- rules:
- - if: $CI_COMMIT_TAG
+ --destination "${CI_REGISTRY_IMAGE}:${TAG}_${ARCH}"
+
+merge-manifests:
+ variables:
+ TAG: latest
+ stage: container-build
+ needs:
+ - job: build-container
+ artifacts: false
+ image:
+ name: mplatform/manifest-tool:alpine
+ entrypoint: [""]
+ script:
+ - if [ -n "$CI_COMMIT_TAG" ]; then export TAG="$CI_COMMIT_TAG"; fi
+ - >-
+ manifest-tool
+ --username="${CI_REGISTRY_USER}"
+ --password="${CI_REGISTRY_PASSWORD}"
+ push from-args
+ --platforms linux/amd64,linux/arm64,linux/s390x
+ --template "${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}_ARCH"
+ --target "${CI_REGISTRY_IMAGE}:${TAG}"
+