kind: pipeline type: kubernetes name: build-arm64 node_selector: kubernetes.io/arch: arm64 steps: - name: docker build image: plugins/docker settings: repo: ${DRONE_REPO} tag: ${DRONE_COMMIT_SHA:0:8}-arm64 # docker use a mtu of 1500 by default, which may cause packet drop in k8s mtu: 1450 username: from_secret: docker_username password: from_secret: docker_password --- kind: pipeline type: kubernetes name: build-amd64 node_selector: kubernetes.io/arch: amd64 steps: - name: docker build image: plugins/docker settings: repo: ${DRONE_REPO} tag: ${DRONE_COMMIT_SHA:0:8}-amd64 # docker use a mtu of 1500 by default, which may cause packet drop in k8s mtu: 1450 username: from_secret: docker_username password: from_secret: docker_password --- kind: pipeline type: kubernetes name: build-multiarch-manifest steps: - name: docker manifest image: docker:20-dind-rootless commands: - docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD" - docker manifest create ${DRONE_REPO}:${DRONE_TAG:-latest} --amend ${DRONE_REPO}:${DRONE_COMMIT_SHA:0:8}-amd64 --amend ${DRONE_REPO}:${DRONE_COMMIT_SHA:0:8}-arm64 - docker manifest push ${DRONE_REPO}:${DRONE_TAG:-latest} environment: DOCKER_USERNAME: from_secret: docker_username DOCKER_PASSWORD: from_secret: docker_password - name: cleanup image: curlimages/curl commands: - curl -u "$DOCKER_USERNAME:$DOCKER_PASSWORD" -X "DELETE" https://cloud.docker.com/v2/repositories/${DRONE_REPO}/tags/${DRONE_COMMIT_SHA:0:8}-arm64 - curl -u "$DOCKER_USERNAME:$DOCKER_PASSWORD" -X "DELETE" https://cloud.docker.com/v2/repositories/${DRONE_REPO}/tags/${DRONE_COMMIT_SHA:0:8}-amd64 environment: DOCKER_USERNAME: from_secret: docker_username DOCKER_PASSWORD: from_secret: docker_password depends_on: - build-arm64 - build-amd64