From aa8faa8b5b8a4e34ba05f0d358783e9035bf5981 Mon Sep 17 00:00:00 2001 From: Filip Pytloun Date: Sat, 23 Nov 2024 12:48:11 +0100 Subject: [PATCH] Try to fix multi-arch build --- .drone.yml | 30 +++++++----------------------- 1 file changed, 7 insertions(+), 23 deletions(-) diff --git a/.drone.yml b/.drone.yml index 161df16..e8952c9 100644 --- a/.drone.yml +++ b/.drone.yml @@ -19,10 +19,12 @@ steps: RESTIC_VERSION=$$(grep RESTIC_VERSION= Dockerfile|cut -d = -f 2) podman login --username "$${REGISTRY_USERNAME}" --password "$${REGISTRY_PASSWORD}" "$${REGISTRY_SERVER}" echo "== Building $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA}" - podman build --platform linux/arm64 --platform linux/amd64 --pull-always --format docker -t $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} . + podman manifest create $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} + podman build --platform linux/arm64,linux/amd64 --pull-always --manifest $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} . + podman manifest inspect $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} echo "== Publishing $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA}" - podman push $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} docker://$${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} - podman push $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} docker://$${RELEASE_IMAGE_NAME}:$${RESTIC_VERSION} + podman manifest push $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} docker://$${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} + podman manifest push $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} docker://$${RELEASE_IMAGE_NAME}:$${RESTIC_VERSION} podman logout "$${REGISTRY_SERVER}" volumes: - name: containers @@ -72,31 +74,13 @@ steps: REGISTRY_SERVER: "docker.io" RELEASE_IMAGE_NAME: "docker.io/genunix/restic" commands: - - podman login --username "$${REGISTRY_USERNAME}" --password "$${REGISTRY_PASSWORD}" "$${REGISTRY_SERVER}" + - skopeo login --username "$${REGISTRY_USERNAME}" --password "$${REGISTRY_PASSWORD}" "$${REGISTRY_SERVER}" - echo "== Promoting $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} into production" - - podman pull docker://$${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} - - podman push $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} docker://$${RELEASE_IMAGE_NAME}:latest - - podman logout "$${REGISTRY_SERVER}" + - skopeo copy --preserve-digests --multi-arch all docker://$${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} docker://$${RELEASE_IMAGE_NAME}:latest volumes: - name: containers path: /var/lib/containers - - name: cleanup - image: mgoltzsche/podman:5.3.1 - privileged: true - environment: - RELEASE_IMAGE_NAME: "docker.io/genunix/restic" - commands: - - podman rmi -f $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} - - podman rmi -f $${RELEASE_IMAGE_NAME}:latest - - podman image prune -f - volumes: - - name: containers - path: /var/lib/containers - when: - branch: - - master - trigger: event: - promote