diff --git a/.drone.yml b/.drone.yml index d0ea056..68a48dd 100644 --- a/.drone.yml +++ b/.drone.yml @@ -48,10 +48,6 @@ steps: volumes: - name: docker path: /var/run/docker.sock - when: - event: - - push - - pull_request - name: upload image: plugins/github-release @@ -74,17 +70,19 @@ steps: - refs/head/master - refs/tags/* - - name: publish + - name: image-push image: drone.cattle.io/rancher/kim:possible pull: never - commands: - - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD - - make TAG=${DRONE_TAG:-$(git describe --tags --always)} publish environment: DOCKER_USERNAME: from_secret: docker_username DOCKER_PASSWORD: from_secret: docker_password + DOCKER_BUILDKIT: "1" + GOLANG: drone.cattle.io/rancher/kim:possible + commands: + - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD + - make TAG=${DRONE_TAG:-$(git describe --tags --always)} image-push volumes: - name: docker path: /var/run/docker.sock @@ -128,28 +126,27 @@ steps: image: drone.cattle.io/rancher/kim:possible pull: never environment: + DOCKER_BUILDKIT: "1" GOLANG: drone.cattle.io/rancher/kim:possible commands: - make TAG=${DRONE_TAG:-$(git describe --tags --always)} image volumes: - name: docker path: /var/run/docker.sock - when: - event: - - push - - pull_request - - name: publish + - name: image-push image: drone.cattle.io/rancher/kim:possible pull: never - commands: - - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD - - make TAG=${DRONE_TAG:-$(git describe --tags --always)} publish environment: DOCKER_USERNAME: from_secret: docker_username DOCKER_PASSWORD: from_secret: docker_password + DOCKER_BUILDKIT: "1" + GOLANG: drone.cattle.io/rancher/kim:possible + commands: + - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD + - make TAG=${DRONE_TAG:-$(git describe --tags --always)} image-push volumes: - name: docker path: /var/run/docker.sock @@ -193,28 +190,27 @@ steps: image: drone.cattle.io/rancher/kim:possible pull: never environment: + DOCKER_BUILDKIT: "1" GOLANG: drone.cattle.io/rancher/kim:possible commands: - make TAG=${DRONE_TAG:-$(git describe --tags --always)} image volumes: - name: docker path: /var/run/docker.sock - when: - event: - - push - - pull_request - - name: publish + - name: image-push image: drone.cattle.io/rancher/kim:possible pull: never - commands: - - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD - - make TAG=${DRONE_TAG:-$(git describe --tags --always)} publish environment: DOCKER_USERNAME: from_secret: docker_username DOCKER_PASSWORD: from_secret: docker_password + DOCKER_BUILDKIT: "1" + GOLANG: drone.cattle.io/rancher/kim:possible + commands: + - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD + - make TAG=${DRONE_TAG:-$(git describe --tags --always)} image-push volumes: - name: docker path: /var/run/docker.sock @@ -232,4 +228,44 @@ volumes: host: path: /var/run/docker.sock +--- +kind: pipeline +type: docker +name: manifest + +platform: + os: linux + arch: arm + +steps: + - name: manifest + image: drone.cattle.io/rancher/kim:possible + pull: never + environment: + DOCKER_USERNAME: + from_secret: docker_username + DOCKER_PASSWORD: + from_secret: docker_password + DOCKER_BUILDKIT: "1" + GOLANG: drone.cattle.io/rancher/kim:possible + commands: + - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD + - make TAG=${DRONE_TAG:-$(git describe --tags --always)} image-manifest-all + volumes: + - name: docker + path: /var/run/docker.sock + when: + event: + - tag + instance: + - drone-publish.rancher.io + ref: + - refs/head/master + - refs/tags/* + +depends_on: + - amd64 + - arm64 + - armhf + ... diff --git a/Makefile b/Makefile index df82160..ac90eee 100644 --- a/Makefile +++ b/Makefile @@ -81,6 +81,16 @@ image-manifest: DOCKER_CLI_EXPERIMENTAL=enabled docker manifest push \ $(IMG) +.PHONY: image-manifest-all +image-manifest-all: + DOCKER_CLI_EXPERIMENTAL=enabled docker manifest create --amend \ + $(IMG) \ + $(IMG)-amd64 \ + $(IMG)-arm64 \ + $(IMG)-arm + DOCKER_CLI_EXPERIMENTAL=enabled docker manifest push \ + $(IMG) + # use this target to test drone builds locally .PHONY: drone-local drone-local: