From 7c92ce1a8f54e5e336316d6ee412c8cfe170576f Mon Sep 17 00:00:00 2001 From: Peter Kurfer Date: Mon, 17 Jul 2023 16:03:15 +0000 Subject: [PATCH] feat(ci): build multi-arch iamge --- .drone.yml | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 62 insertions(+), 4 deletions(-) diff --git a/.drone.yml b/.drone.yml index dc11446..dcee1d9 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,7 +1,10 @@ --- kind: pipeline type: docker -name: default +name: amd64 + +platform: + arch: amd64 steps: - name: Build image @@ -11,13 +14,68 @@ steps: - | echo "{\"auths\": {\"https://code.icb4dc0.de\": {\"auth\" : \"$(printf '%s:%s' $GITEA_USER $GITEA_TOKEN | base64)\" }}}" > /kaniko/.docker/config.json /kaniko/executor \ - --destination code.icb4dc0.de/buildr/docs:latest \ - --destination code.icb4dc0.de/buildr/docs:$DRONE_COMMIT_SHA \ - --context . + --destination "$${IMAGE_REPO}:$${DRONE_COMMIT_SHA}_$${IMAGE_TAG}" \ + --context "$${BUILD_CONTEXT}" environment: GITEA_USER: prskr GITEA_TOKEN: from_secret: gitea_token + IMAGE_REPO: code.icb4dc0.de/buildr/docs + IMAGE_TAG: x86_64 + BUILD_CONTEXT: . + +--- +kind: pipeline +type: docker +name: arm64 + +platform: + arch: arm64 + +steps: + - name: Build image + image: gcr.io/kaniko-project/executor:debug + network_mode: host + commands: + - | + echo "{\"auths\": {\"https://code.icb4dc0.de\": {\"auth\" : \"$(printf '%s:%s' $GITEA_USER $GITEA_TOKEN | base64)\" }}}" > /kaniko/.docker/config.json + /kaniko/executor \ + --destination "$${IMAGE_REPO}:$${DRONE_COMMIT_SHA}_$${IMAGE_TAG}" \ + --context "$${BUILD_CONTEXT}" + environment: + GITEA_USER: prskr + GITEA_TOKEN: + from_secret: gitea_token + IMAGE_REPO: code.icb4dc0.de/buildr/docs + IMAGE_TAG: arm64 + BUILD_CONTEXT: . + +--- +kind: pipeline +type: docker +name: deploy + +depends_on: + - amd64 + - arm64 + +steps: + - name: manifest + image: quay.io/buildah/stable + network_mode: host + privileged: true + commands: + - buildah login "$${IMAGE_REGISTRY}" --username "$${GITEA_USER}" --password "$${GITEA_TOKEN}" + - buildah manifest create "$${IMAGE_REGISTRY}/$${IMAGE_REPO}:$${DRONE_COMMIT_SHA}" + - buildah manifest add "$${IMAGE_REGISTRY}/$${IMAGE_REPO}:$${DRONE_COMMIT_SHA}" "docker://$${IMAGE_REGISTRY}/$${IMAGE_REPO}:$${DRONE_COMMIT_SHA}_x86_64" + - buildah manifest add "$${IMAGE_REGISTRY}/$${IMAGE_REPO}:$${DRONE_COMMIT_SHA}" "docker://$${IMAGE_REGISTRY}/$${IMAGE_REPO}:$${DRONE_COMMIT_SHA}_arm64" + - buildah manifest push --all "$${IMAGE_REGISTRY}/$${IMAGE_REPO}:$${DRONE_COMMIT_SHA}" "docker://$${IMAGE_REGISTRY}/$${IMAGE_REPO}:$${DRONE_COMMIT_SHA}" + environment: + GITEA_USER: prskr + GITEA_TOKEN: + from_secret: gitea_token + IMAGE_REGISTRY: code.icb4dc0.de + IMAGE_REPO: buildr/docs - name: Deploy docs image: code.icb4dc0.de/prskr/ci-images/kustomize:latest