diff --git a/.drone.jsonnet b/.drone.jsonnet index 1708f97..509725a 100644 --- a/.drone.jsonnet +++ b/.drone.jsonnet @@ -70,6 +70,23 @@ local PipelineBuildContainer(arch='amd64') = { }, depends_on: ['tags'], }, + { + name: 'publish-quay', + image: 'thegeeklab/drone-docker:19', + settings: { + auto_tag: true, + auto_tag_suffix: arch, + dockerfile: 'Dockerfile.' + arch, + registry: 'quay.io', + repo: 'quay.io/thegeeklab/${DRONE_REPO_NAME}', + username: { from_secret: 'quay_username' }, + password: { from_secret: 'quay_password' }, + }, + when: { + ref: ['refs/heads/main', 'refs/tags/**'], + }, + depends_on: ['tags'], + }, ], depends_on: [ 'test', @@ -100,6 +117,20 @@ local PipelineNotifications = { status: ['success'], }, }, + { + image: 'plugins/manifest', + name: 'manifest-quay', + settings: { + ignore_missing: true, + auto_tag: true, + username: { from_secret: 'quay_username' }, + password: { from_secret: 'quay_password' }, + spec: 'manifest-quay.tmpl', + }, + when: { + status: ['success'], + }, + }, { name: 'pushrm-dockerhub', pull: 'always', @@ -119,6 +150,21 @@ local PipelineNotifications = { status: ['success'], }, }, + { + name: 'pushrm-quay', + pull: 'always', + image: 'chko/docker-pushrm:1', + environment: { + APIKEY__QUAY_IO: { + from_secret: 'quay_token', + }, + PUSHRM_FILE: 'README.md', + PUSHRM_TARGET: 'quay.io/thegeeklab/${DRONE_REPO_NAME}', + }, + when: { + status: ['success'], + }, + }, { name: 'matrix', image: 'plugins/matrix', diff --git a/.drone.yml b/.drone.yml index 17378be..c2fe984 100644 --- a/.drone.yml +++ b/.drone.yml @@ -70,6 +70,25 @@ steps: depends_on: - tags +- name: publish-quay + image: thegeeklab/drone-docker:19 + settings: + auto_tag: true + auto_tag_suffix: amd64 + dockerfile: Dockerfile.amd64 + password: + from_secret: quay_password + registry: quay.io + repo: quay.io/thegeeklab/${DRONE_REPO_NAME} + username: + from_secret: quay_username + when: + ref: + - refs/heads/main + - refs/tags/** + depends_on: + - tags + trigger: ref: - refs/heads/main @@ -131,6 +150,25 @@ steps: depends_on: - tags +- name: publish-quay + image: thegeeklab/drone-docker:19 + settings: + auto_tag: true + auto_tag_suffix: arm64_v8 + dockerfile: Dockerfile.arm64_v8 + password: + from_secret: quay_password + registry: quay.io + repo: quay.io/thegeeklab/${DRONE_REPO_NAME} + username: + from_secret: quay_username + when: + ref: + - refs/heads/main + - refs/tags/** + depends_on: + - tags + trigger: ref: - refs/heads/main @@ -192,6 +230,25 @@ steps: depends_on: - tags +- name: publish-quay + image: thegeeklab/drone-docker:19 + settings: + auto_tag: true + auto_tag_suffix: arm_v7 + dockerfile: Dockerfile.arm_v7 + password: + from_secret: quay_password + registry: quay.io + repo: quay.io/thegeeklab/${DRONE_REPO_NAME} + username: + from_secret: quay_username + when: + ref: + - refs/heads/main + - refs/tags/** + depends_on: + - tags + trigger: ref: - refs/heads/main @@ -223,6 +280,20 @@ steps: status: - success +- name: manifest-quay + image: plugins/manifest + settings: + auto_tag: true + ignore_missing: true + password: + from_secret: quay_password + spec: manifest-quay.tmpl + username: + from_secret: quay_username + when: + status: + - success + - name: pushrm-dockerhub pull: always image: chko/docker-pushrm:1 @@ -238,6 +309,18 @@ steps: status: - success +- name: pushrm-quay + pull: always + image: chko/docker-pushrm:1 + environment: + APIKEY__QUAY_IO: + from_secret: quay_token + PUSHRM_FILE: README.md + PUSHRM_TARGET: quay.io/thegeeklab/${DRONE_REPO_NAME} + when: + status: + - success + - name: matrix image: plugins/matrix settings: @@ -270,6 +353,6 @@ depends_on: --- kind: signature -hmac: df8ed22bcc61c18db85e4b1945870ba94644decaae71736b5cd631445004a3c6 +hmac: af32284553808c162e71b2c97532c9f78821f88035b2030c97eba15c63585c11 ... diff --git a/manifest-quay.tmpl b/manifest-quay.tmpl new file mode 100644 index 0000000..270f69e --- /dev/null +++ b/manifest-quay.tmpl @@ -0,0 +1,24 @@ +image: quay.io/thegeeklab/alpine-tools:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}} +{{#if build.tags}} +tags: +{{#each build.tags}} + - {{this}} +{{/each}} +{{/if}} +manifests: + - image: quay.io/thegeeklab/alpine-tools:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}amd64 + platform: + architecture: amd64 + os: linux + + - image: quay.io/thegeeklab/alpine-tools:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm64 + platform: + architecture: arm64 + os: linux + variant: v8 + + - image: quay.io/thegeeklab/alpine-tools:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm + platform: + architecture: arm + os: linux + variant: v7