Skip to content

Commit 4fbb720

Browse files
committed
Split prefix and suffix, create multiarch manifest
Signed-off-by: Federico Busetti <[email protected]>
1 parent 9d2ba95 commit 4fbb720

File tree

2 files changed

+33
-3
lines changed

2 files changed

+33
-3
lines changed

.gitlab_ci/_templates.yml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ variables:
22
DOCKER_IMAGE_NAME: $CI_REGISTRY_IMAGE
33
DOCKER_IMAGE_TAG: $CI_COMMIT_SHA
44
DOCKER_IMAGE_TAG_PREFIX: ""
5-
DOCKER_IMAGE_FULL_TAG: $DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG_PREFIX$DOCKER_IMAGE_TAG
5+
DOCKER_IMAGE_TAG_SUFFIX: ""
6+
DOCKER_IMAGE_FULL_TAG: $DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG_PREFIX$DOCKER_IMAGE_TAG$DOCKER_IMAGE_TAG_SUFFIX
67

78
# Build Docker image for test
89
# TODO: Sign image using Cosign
@@ -31,6 +32,18 @@ variables:
3132
--cache-to type=registry,ref=$DOCKER_IMAGE_NAME:cache \
3233
.
3334
35+
# Architectures are hardcoded for multiarch, need to make this better
36+
.multiarch-manifest-gitlab:
37+
image: docker:24.0.2
38+
services:
39+
- docker:24.0.2-dind
40+
script:
41+
- docker manifest create $DOCKER_IMAGE_FULL_TAG \
42+
--amend $DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG_PREFIX$DOCKER_IMAGE_TAG-amd64 \
43+
--amend $DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG_PREFIX$DOCKER_IMAGE_TAG-arm64
44+
45+
- docker manifest push $DOCKER_IMAGE_FULL_TAG
46+
3447
.python-typing:
3548
image: $DOCKER_IMAGE_FULL_TAG
3649
script:

.gitlab_ci/build.yml

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ build-test:
1313
build-http-app-amd64:
1414
stage: build
1515
variables:
16-
DOCKER_IMAGE_TAG_PREFIX: "http-amd64-"
16+
DOCKER_IMAGE_TAG_PREFIX: "http-"
17+
DOCKER_IMAGE_TAG_SUFFIX: "-amd64"
18+
DOCKER_PLATFORM: "linux/amd64"
1719
DOCKER_TARGET: http_app
1820
tags:
1921
- saas-linux-small-amd64
@@ -27,7 +29,8 @@ build-http-app-amd64:
2729
build-http-app-arm64:
2830
stage: build
2931
variables:
30-
DOCKER_IMAGE_TAG_PREFIX: "http-arm64-"
32+
DOCKER_IMAGE_TAG_PREFIX: "http-"
33+
DOCKER_IMAGE_TAG_SUFFIX: "-arm64"
3134
DOCKER_PLATFORM: "linux/arm64"
3235
DOCKER_TARGET: http_app
3336
tags:
@@ -38,3 +41,17 @@ build-http-app-arm64:
3841
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
3942
extends:
4043
- .build-and-push-gitlab
44+
45+
aggregate-http-manifests:
46+
stage: build
47+
needs:
48+
- build-http-app-amd64
49+
- build-http-app-arm64
50+
variables:
51+
DOCKER_IMAGE_TAG_PREFIX: "http-"
52+
rules:
53+
# We run the pipeline only on merge requests or the `main` branch
54+
- if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
55+
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
56+
extends:
57+
- .build-and-push-gitlab

0 commit comments

Comments
 (0)