diff --git a/.drone.jsonnet b/.drone.jsonnet index 6f96236..699c554 100644 --- a/.drone.jsonnet +++ b/.drone.jsonnet @@ -211,12 +211,12 @@ local PipelineBuildPackage = { }, }; -local PipelineBuildContainer(arch='amd64') = { +local PipelineBuildContainer = { kind: 'pipeline', - name: 'build-container-' + arch, + name: 'build-container', platform: { os: 'linux', - arch: arch, + arch: 'amd64', }, steps: [ { @@ -233,10 +233,13 @@ local PipelineBuildContainer(arch='amd64') = { image: 'thegeeklab/drone-docker-buildx:20', settings: { dry_run: true, - dockerfile: 'docker/Dockerfile.' + arch, + dockerfile: 'Dockerfile.multiarch', repo: 'thegeeklab/${DRONE_REPO_NAME}', - username: { from_secret: 'docker_username' }, - password: { from_secret: 'docker_password' }, + platforms: [ + 'linux/amd64', + 'linux/arm64', + ], + provenance: false, }, depends_on: ['build'], when: { @@ -248,11 +251,15 @@ local PipelineBuildContainer(arch='amd64') = { image: 'thegeeklab/drone-docker-buildx:20', settings: { auto_tag: true, - auto_tag_suffix: arch, - dockerfile: 'docker/Dockerfile.' + arch, + dockerfile: 'Dockerfile.multiarch', repo: 'thegeeklab/${DRONE_REPO_NAME}', username: { from_secret: 'docker_username' }, password: { from_secret: 'docker_password' }, + platforms: [ + 'linux/amd64', + 'linux/arm64', + ], + provenance: false, }, when: { ref: ['refs/heads/main', 'refs/tags/**'], @@ -264,12 +271,16 @@ local PipelineBuildContainer(arch='amd64') = { image: 'thegeeklab/drone-docker-buildx:20', settings: { auto_tag: true, - auto_tag_suffix: arch, - dockerfile: 'docker/Dockerfile.' + arch, + dockerfile: 'Dockerfile.multiarch', registry: 'quay.io', repo: 'quay.io/thegeeklab/${DRONE_REPO_NAME}', username: { from_secret: 'quay_username' }, password: { from_secret: 'quay_password' }, + platforms: [ + 'linux/amd64', + 'linux/arm64', + ], + provenance: false, }, when: { ref: ['refs/heads/main', 'refs/tags/**'], @@ -378,8 +389,7 @@ local PipelineDocs = { ], depends_on: [ 'build-package', - 'build-container-amd64', - 'build-container-arm64', + 'build-container', ], trigger: { ref: ['refs/heads/main', 'refs/tags/**', 'refs/pull/**'], @@ -394,37 +404,8 @@ local PipelineNotifications = { arch: 'amd64', }, steps: [ - { - image: 'plugins/manifest', - name: 'manifest-dockerhub', - settings: { - ignore_missing: true, - auto_tag: true, - username: { from_secret: 'docker_username' }, - password: { from_secret: 'docker_password' }, - spec: 'docker/manifest.tmpl', - }, - when: { - 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: 'docker/manifest-quay.tmpl', - }, - when: { - status: ['success'], - }, - }, { name: 'pushrm-dockerhub', - pull: 'always', image: 'chko/docker-pushrm:1', environment: { DOCKER_PASS: { @@ -443,7 +424,6 @@ local PipelineNotifications = { }, { name: 'pushrm-quay', - pull: 'always', image: 'chko/docker-pushrm:1', environment: { APIKEY__QUAY_IO: { @@ -485,8 +465,7 @@ local PipelineNotifications = { PipelineTest, PipelineSecurity, PipelineBuildPackage, - PipelineBuildContainer(arch='amd64'), - PipelineBuildContainer(arch='arm64'), + PipelineBuildContainer, PipelineDocs, PipelineNotifications, ] diff --git a/.drone.yml b/.drone.yml index 4fcabbe..3cc8f31 100644 --- a/.drone.yml +++ b/.drone.yml @@ -215,7 +215,7 @@ depends_on: --- kind: pipeline -name: build-container-amd64 +name: build-container platform: os: linux @@ -232,13 +232,13 @@ steps: - name: dryrun image: thegeeklab/drone-docker-buildx:20 settings: - dockerfile: docker/Dockerfile.amd64 + dockerfile: Dockerfile.multiarch dry_run: true - password: - from_secret: docker_password + platforms: + - linux/amd64 + - linux/arm64 + provenance: false repo: thegeeklab/${DRONE_REPO_NAME} - username: - from_secret: docker_username when: ref: - refs/pull/** @@ -249,10 +249,13 @@ steps: image: thegeeklab/drone-docker-buildx:20 settings: auto_tag: true - auto_tag_suffix: amd64 - dockerfile: docker/Dockerfile.amd64 + dockerfile: Dockerfile.multiarch password: from_secret: docker_password + platforms: + - linux/amd64 + - linux/arm64 + provenance: false repo: thegeeklab/${DRONE_REPO_NAME} username: from_secret: docker_username @@ -267,88 +270,13 @@ steps: image: thegeeklab/drone-docker-buildx:20 settings: auto_tag: true - auto_tag_suffix: amd64 - dockerfile: docker/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: - - dryrun - -trigger: - ref: - - refs/heads/main - - refs/tags/** - - refs/pull/** - -depends_on: - - security - ---- -kind: pipeline -name: build-container-arm64 - -platform: - os: linux - arch: arm64 - -steps: - - name: build - image: python:3.11 - commands: - - git fetch -tq - - pip install poetry poetry-dynamic-versioning -qq - - poetry build - - - name: dryrun - image: thegeeklab/drone-docker-buildx:20 - settings: - dockerfile: docker/Dockerfile.arm64 - dry_run: true - password: - from_secret: docker_password - repo: thegeeklab/${DRONE_REPO_NAME} - username: - from_secret: docker_username - when: - ref: - - refs/pull/** - depends_on: - - build - - - name: publish-dockerhub - image: thegeeklab/drone-docker-buildx:20 - settings: - auto_tag: true - auto_tag_suffix: arm64 - dockerfile: docker/Dockerfile.arm64 - password: - from_secret: docker_password - repo: thegeeklab/${DRONE_REPO_NAME} - username: - from_secret: docker_username - when: - ref: - - refs/heads/main - - refs/tags/** - depends_on: - - dryrun - - - name: publish-quay - image: thegeeklab/drone-docker-buildx:20 - settings: - auto_tag: true - auto_tag_suffix: arm64 - dockerfile: docker/Dockerfile.arm64 + dockerfile: Dockerfile.multiarch password: from_secret: quay_password + platforms: + - linux/amd64 + - linux/arm64 + provenance: false registry: quay.io repo: quay.io/thegeeklab/${DRONE_REPO_NAME} username: @@ -452,8 +380,7 @@ trigger: depends_on: - build-package - - build-container-amd64 - - build-container-arm64 + - build-container --- kind: pipeline @@ -464,36 +391,7 @@ platform: arch: amd64 steps: - - name: manifest-dockerhub - image: plugins/manifest - settings: - auto_tag: true - ignore_missing: true - password: - from_secret: docker_password - spec: docker/manifest.tmpl - username: - from_secret: docker_username - when: - status: - - success - - - name: manifest-quay - image: plugins/manifest - settings: - auto_tag: true - ignore_missing: true - password: - from_secret: quay_password - spec: docker/manifest-quay.tmpl - username: - from_secret: quay_username - when: - status: - - success - - name: pushrm-dockerhub - pull: always image: chko/docker-pushrm:1 environment: DOCKER_PASS: @@ -508,7 +406,6 @@ steps: - success - name: pushrm-quay - pull: always image: chko/docker-pushrm:1 environment: APIKEY__QUAY_IO: @@ -549,6 +446,6 @@ depends_on: --- kind: signature -hmac: 53a46172f93dea3fda42a2af0e22b9753b07b26cba9eec4e94d6525624d94d1d +hmac: 347bab3b44aba6bf6e4af3cff78ce92344f35e2372becf62f574a9de450e0845 ... diff --git a/docker/Dockerfile.amd64 b/Dockerfile.multiarch similarity index 100% rename from docker/Dockerfile.amd64 rename to Dockerfile.multiarch diff --git a/docker/Dockerfile.arm64 b/docker/Dockerfile.arm64 deleted file mode 100644 index 796f2f8..0000000 --- a/docker/Dockerfile.arm64 +++ /dev/null @@ -1,26 +0,0 @@ -FROM arm64v8/python:3.11-alpine@sha256:941d62a7bcc71f7d25b3fa14a8121a549a72afdc4c4e06a7636b77dca1228620 - -LABEL maintainer="Robert Kaussow " -LABEL org.opencontainers.image.authors="Robert Kaussow " -LABEL org.opencontainers.image.title="ansible-later" -LABEL org.opencontainers.image.url="https://ansible-later.geekdocs.de/" -LABEL org.opencontainers.image.source="https://github.com/thegeeklab/ansible-later" -LABEL org.opencontainers.image.documentation="https://ansible-later.geekdocs.de/" - -ENV PY_COLORS=1 -ENV CARGO_NET_GIT_FETCH_WITH_CLI=true - -ADD dist/ansible_later-*.whl / - -RUN apk --update add --virtual .build-deps build-base libffi-dev openssl-dev musl-dev python3-dev cargo && \ - apk --update add git && \ - pip install --upgrade --no-cache-dir pip && \ - pip install --no-cache-dir $(find / -name "ansible_later-*.whl")[ansible] && \ - apk del .build-deps && \ - rm -f ansible_later-*.whl && \ - rm -rf /var/cache/apk/* && \ - rm -rf /root/.cache/ - -USER root -CMD [] -ENTRYPOINT ["/usr/local/bin/ansible-later"] diff --git a/docker/manifest-quay.tmpl b/docker/manifest-quay.tmpl deleted file mode 100644 index 170aee3..0000000 --- a/docker/manifest-quay.tmpl +++ /dev/null @@ -1,18 +0,0 @@ -image: quay.io/thegeeklab/ansible-later:{{#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/ansible-later:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}amd64 - platform: - architecture: amd64 - os: linux - - - image: quay.io/thegeeklab/ansible-later:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm64 - platform: - architecture: arm64 - os: linux - variant: v8 diff --git a/docker/manifest.tmpl b/docker/manifest.tmpl deleted file mode 100644 index 4d89dd5..0000000 --- a/docker/manifest.tmpl +++ /dev/null @@ -1,18 +0,0 @@ -image: thegeeklab/ansible-later:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}} -{{#if build.tags}} -tags: -{{#each build.tags}} - - {{this}} -{{/each}} -{{/if}} -manifests: - - image: thegeeklab/ansible-later:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}amd64 - platform: - architecture: amd64 - os: linux - - - image: thegeeklab/ansible-later:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm64 - platform: - architecture: arm64 - os: linux - variant: v8