diff --git a/.drone.jsonnet b/.drone.jsonnet index f0caa53..529275e 100644 --- a/.drone.jsonnet +++ b/.drone.jsonnet @@ -40,15 +40,14 @@ local PipelineBuildContainer(arch='amd64') = { }, { name: 'dryrun', - image: 'thegeeklab/drone-docker-buildx', - privileged: true, + image: 'thegeeklab/drone-docker-buildx:20', settings: { dry_run: true, dockerfile: 'Dockerfile.' + std.split(arch, '_')[0], platforms: [ 'linux/' + std.strReplace(arch, '_', '/'), ], - repo: 'thegeeklab/buildx-alpine', + repo: 'thegeeklab/${DRONE_REPO_NAME}', username: { from_secret: 'docker_username' }, password: { from_secret: 'docker_password' }, }, @@ -59,10 +58,10 @@ local PipelineBuildContainer(arch='amd64') = { }, { name: 'publish-dockerhub', - image: 'thegeeklab/drone-docker-buildx', + image: 'thegeeklab/drone-docker-buildx:20', settings: { dockerfile: 'Dockerfile.' + std.split(arch, '_')[0], - repo: 'thegeeklab/buildx-alpine', + repo: 'thegeeklab/${DRONE_REPO_NAME}', username: { from_secret: 'docker_username' }, password: { from_secret: 'docker_password' }, }, @@ -71,6 +70,21 @@ local PipelineBuildContainer(arch='amd64') = { }, depends_on: ['tags'], }, + { + name: 'publish-quay', + image: 'thegeeklab/drone-docker-buildx:20', + settings: { + dockerfile: 'Dockerfile.' + std.split(arch, '_')[0], + 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', @@ -101,6 +115,19 @@ local PipelineNotifications = { status: ['success'], }, }, + { + image: 'plugins/manifest', + name: 'manifest-quay', + settings: { + ignore_missing: true, + username: { from_secret: 'quay_username' }, + password: { from_secret: 'quay_password' }, + spec: 'manifest-quay.tmpl', + }, + when: { + status: ['success'], + }, + }, { name: 'pushrm-dockerhub', pull: 'always', @@ -114,7 +141,22 @@ local PipelineNotifications = { }, PUSHRM_FILE: 'README.md', PUSHRM_SHORT: 'Rootless Alpine base image', - PUSHRM_TARGET: 'thegeeklab/buildx-alpine', + PUSHRM_TARGET: 'thegeeklab/${DRONE_REPO_NAME}', + }, + when: { + 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'], diff --git a/.drone.yml b/.drone.yml index 4464f2b..5fecd4e 100644 --- a/.drone.yml +++ b/.drone.yml @@ -37,7 +37,7 @@ steps: DOCKER_AUTOTAG_VERSION: ${DRONE_TAG} - name: dryrun - image: thegeeklab/drone-docker-buildx + image: thegeeklab/drone-docker-buildx:20 settings: dockerfile: Dockerfile.amd64 dry_run: true @@ -45,10 +45,9 @@ steps: from_secret: docker_password platforms: - linux/amd64 - repo: thegeeklab/buildx-alpine + repo: thegeeklab/${DRONE_REPO_NAME} username: from_secret: docker_username - privileged: true when: ref: - refs/pull/** @@ -56,12 +55,12 @@ steps: - tags - name: publish-dockerhub - image: thegeeklab/drone-docker-buildx + image: thegeeklab/drone-docker-buildx:20 settings: dockerfile: Dockerfile.amd64 password: from_secret: docker_password - repo: thegeeklab/buildx-alpine + repo: thegeeklab/${DRONE_REPO_NAME} username: from_secret: docker_username when: @@ -71,6 +70,23 @@ steps: depends_on: - tags +- name: publish-quay + image: thegeeklab/drone-docker-buildx:20 + settings: + 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 @@ -99,7 +115,7 @@ steps: DOCKER_AUTOTAG_VERSION: ${DRONE_TAG} - name: dryrun - image: thegeeklab/drone-docker-buildx + image: thegeeklab/drone-docker-buildx:20 settings: dockerfile: Dockerfile.arm64 dry_run: true @@ -107,10 +123,9 @@ steps: from_secret: docker_password platforms: - linux/arm64/v8 - repo: thegeeklab/buildx-alpine + repo: thegeeklab/${DRONE_REPO_NAME} username: from_secret: docker_username - privileged: true when: ref: - refs/pull/** @@ -118,12 +133,12 @@ steps: - tags - name: publish-dockerhub - image: thegeeklab/drone-docker-buildx + image: thegeeklab/drone-docker-buildx:20 settings: dockerfile: Dockerfile.arm64 password: from_secret: docker_password - repo: thegeeklab/buildx-alpine + repo: thegeeklab/${DRONE_REPO_NAME} username: from_secret: docker_username when: @@ -133,6 +148,23 @@ steps: depends_on: - tags +- name: publish-quay + image: thegeeklab/drone-docker-buildx:20 + settings: + dockerfile: Dockerfile.arm64 + 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 @@ -161,7 +193,7 @@ steps: DOCKER_AUTOTAG_VERSION: ${DRONE_TAG} - name: dryrun - image: thegeeklab/drone-docker-buildx + image: thegeeklab/drone-docker-buildx:20 settings: dockerfile: Dockerfile.arm dry_run: true @@ -169,10 +201,9 @@ steps: from_secret: docker_password platforms: - linux/arm/v7 - repo: thegeeklab/buildx-alpine + repo: thegeeklab/${DRONE_REPO_NAME} username: from_secret: docker_username - privileged: true when: ref: - refs/pull/** @@ -180,12 +211,12 @@ steps: - tags - name: publish-dockerhub - image: thegeeklab/drone-docker-buildx + image: thegeeklab/drone-docker-buildx:20 settings: dockerfile: Dockerfile.arm password: from_secret: docker_password - repo: thegeeklab/buildx-alpine + repo: thegeeklab/${DRONE_REPO_NAME} username: from_secret: docker_username when: @@ -195,6 +226,23 @@ steps: depends_on: - tags +- name: publish-quay + image: thegeeklab/drone-docker-buildx:20 + settings: + dockerfile: Dockerfile.arm + 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 @@ -226,6 +274,19 @@ steps: status: - success +- name: manifest-quay + image: plugins/manifest + settings: + 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 @@ -236,7 +297,19 @@ steps: from_secret: docker_username PUSHRM_FILE: README.md PUSHRM_SHORT: Rootless Alpine base image - PUSHRM_TARGET: thegeeklab/buildx-alpine + PUSHRM_TARGET: thegeeklab/${DRONE_REPO_NAME} + when: + 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 @@ -273,6 +346,6 @@ depends_on: --- kind: signature -hmac: c11c306a6ff27ebe6ffe119cda6ec0afd5b8426ccb72c3a71cd6209782634451 +hmac: b461e1964e0b2ac5b9154b81fa293d6dc99a082e63987d90a4e441b1667d26c8 ... diff --git a/manifest-quay.tmpl b/manifest-quay.tmpl new file mode 100644 index 0000000..54ac592 --- /dev/null +++ b/manifest-quay.tmpl @@ -0,0 +1,24 @@ +image: quay.io/thegeeklab/alpine:{{#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:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}amd64 + platform: + architecture: amd64 + os: linux + + - image: quay.io/thegeeklab/alpine:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm64 + platform: + architecture: arm64 + os: linux + variant: v8 + + - image: quay.io/thegeeklab/alpine:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm + platform: + architecture: arm + os: linux + variant: v7 diff --git a/manifest.tmpl b/manifest.tmpl index 32274ea..5741194 100644 --- a/manifest.tmpl +++ b/manifest.tmpl @@ -1,4 +1,4 @@ -image: thegeeklab/buildx-alpine:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}} +image: thegeeklab/alpine:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}} {{#if build.tags}} tags: {{#each build.tags}} @@ -6,18 +6,18 @@ tags: {{/each}} {{/if}} manifests: - - image: thegeeklab/buildx-alpine:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}amd64 + - image: thegeeklab/alpine:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}amd64 platform: architecture: amd64 os: linux - - image: thegeeklab/buildx-alpine:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm64 + - image: thegeeklab/alpine:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm64 platform: architecture: arm64 os: linux variant: v8 - - image: thegeeklab/buildx-alpine:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm + - image: thegeeklab/alpine:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm platform: architecture: arm os: linux