diff --git a/.drone.yml b/.drone.yml index b03bb28..2c919cb 100644 --- a/.drone.yml +++ b/.drone.yml @@ -11,7 +11,7 @@ steps: - name: markdown lint commands: - markdownlint *.md - image: docker.io/tmknom/markdownlint:0.23.1 + image: docker.io/volkerraschek/markdownlint:0.28.1 resources: limits: cpu: 50 @@ -44,7 +44,7 @@ trigger: --- kind: pipeline type: docker -name: build-latest +name: latest-amd64 platform: os: linux @@ -52,36 +52,17 @@ platform: steps: - name: build - image: docker.io/volkerraschek/build-image:latest - commands: - - make container-image/build - volumes: - - name: docker_socket - path: /var/run/docker.sock - when: - branch: - - master - -- name: push - image: docker.io/volkerraschek/build-image:latest - commands: - - make container-image/push - environment: - POSTFIXADMIN_IMAGE_REGISTRY_PASSWORD: + image: plugins/docker + settings: + dockerfile: Dockerfile + auto_tag: false + tags: latest-amd64 + repo: volkerraschek/postfixadmin + username: + from_secret: container_image_registry_user + password: from_secret: container_image_registry_password - volumes: - - name: docker_socket - path: /var/run/docker.sock - when: - branch: - - master - repo: - - volker.raschek/postfixadmin-docker - -- name: delete - image: docker.io/volkerraschek/build-image:latest - commands: - - make container-image/delete + no_cache: true volumes: - name: docker_socket path: /var/run/docker.sock @@ -118,7 +99,108 @@ trigger: --- kind: pipeline type: docker -name: build-tagged +name: latest-armv7 + +platform: + os: linux + arch: arm + +steps: +- name: build + image: plugins/docker + settings: + dockerfile: Dockerfile + auto_tag: false + tags: latest-armv7 + repo: volkerraschek/postfixadmin + username: + from_secret: container_image_registry_user + password: + from_secret: container_image_registry_password + no_cache: true + when: + branch: + - master + +- name: notify + image: drillster/drone-email + environment: + PLUGIN_HOST: + from_secret: smtp_host + PLUGIN_USERNAME: + from_secret: smtp_username + PLUGIN_PASSWORD: + from_secret: smtp_password + PLUGIN_FROM: + from_secret: smtp_mail_address + volumes: + - name: docker_socket + path: /var/run/docker.sock + when: + status: + - changed + - failure + +volumes: +- name: docker_socket + host: + path: /var/run/docker.sock + +trigger: + event: + exclude: + - tag + +--- +kind: pipeline +type: kubernetes +name: latest-manifest + +steps: +- name: build-manifest + image: plugins/manifest + settings: + auto_tag: false + ignore_missing: true + spec: manifest.tmpl + username: + from_secret: container_image_registry_user + password: + from_secret: container_image_registry_password + +- name: notify + image: docker.io/drillster/drone-email:latest + environment: + PLUGIN_HOST: + from_secret: smtp_host + PLUGIN_USERNAME: + from_secret: smtp_username + PLUGIN_PASSWORD: + from_secret: smtp_password + PLUGIN_FROM: + from_secret: smtp_mail_address + resources: + limits: + cpu: 50 + memory: 25M + when: + status: + - changed + - failure + +depends_on: +- latest-amd64 +- latest-armv7 + +trigger: + event: + exclude: + - tag + +--- +kind: pipeline +type: docker +name: tagged-amd64 platform: os: linux @@ -126,28 +208,19 @@ platform: steps: - name: build - image: docker.io/volkerraschek/build-image:latest - commands: - - make container-image/build POSTFIXADMIN_IMAGE_VERSION=${DRONE_TAG} - volumes: - - name: docker_socket - path: /var/run/docker.sock - -- name: push - image: docker.io/volkerraschek/build-image:latest - commands: - - make container-image/push POSTFIXADMIN_IMAGE_VERSION=${DRONE_TAG} - environment: - POSTFIXADMIN_IMAGE_REGISTRY_PASSWORD: + image: plugins/docker + settings: + dockerfile: Dockerfile + auto_tag: true + auto_tag_suffix: amd64 + repo: volkerraschek/postfixadmin + username: + from_secret: container_image_registry_user + password: from_secret: container_image_registry_password - volumes: - - name: docker_socket - path: /var/run/docker.sock - -- name: delete - image: docker.io/volkerraschek/build-image:latest - commands: - - make container-image/delete POSTFIXADMIN_IMAGE_VERSION=${DRONE_TAG} + build_args: + - POSTFIXADMIN_VERSION=${DRONE_TAG} + no_cache: true volumes: - name: docker_socket path: /var/run/docker.sock @@ -178,6 +251,109 @@ trigger: - tag repo: - volker.raschek/postfixadmin-docker + +--- +kind: pipeline +type: docker +name: tagged-armv7 + +platform: + os: linux + arch: arm + +steps: +- name: build + image: plugins/docker + settings: + dockerfile: Dockerfile + auto_tag: true + auto_tag_suffix: armv7 + repo: volkerraschek/postfixadmin + username: + from_secret: container_image_registry_user + password: + from_secret: container_image_registry_password + build_args: + - POSTFIXADMIN_VERSION=${DRONE_TAG} + no_cache: true + volumes: + - name: docker_socket + path: /var/run/docker.sock + +- name: notify + image: drillster/drone-email + environment: + PLUGIN_HOST: + from_secret: smtp_host + PLUGIN_USERNAME: + from_secret: smtp_username + PLUGIN_PASSWORD: + from_secret: smtp_password + PLUGIN_FROM: + from_secret: smtp_mail_address + when: + status: + - changed + - failure + +volumes: +- name: docker_socket + host: + path: /var/run/docker.sock + +trigger: + event: + - tag + repo: + - volker.raschek/postfixadmin-docker + +--- +kind: pipeline +type: kubernetes +name: tagged-manifest + +steps: +- name: build-manifest + image: plugins/manifest + settings: + auto_tag: true + ignore_missing: true + spec: manifest.tmpl + username: + from_secret: container_image_registry_user + password: + from_secret: container_image_registry_password + +- name: notify + image: docker.io/drillster/drone-email:latest + environment: + PLUGIN_HOST: + from_secret: smtp_host + PLUGIN_USERNAME: + from_secret: smtp_username + PLUGIN_PASSWORD: + from_secret: smtp_password + PLUGIN_FROM: + from_secret: smtp_mail_address + resources: + limits: + cpu: 50 + memory: 25M + when: + status: + - changed + - failure + +depends_on: +- tagged-amd64 +- tagged-armv7 + +trigger: + event: + - tag + repo: + - volker.raschek/postfixadmin-docker + --- kind: pipeline type: kubernetes @@ -225,4 +401,4 @@ trigger: event: - push repo: - - volker.raschek/postfixadmin-docker + - volker.raschek/postfixadmin-docker \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 66937e5..e232eb9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,7 @@ FROM docker.io/library/php:7.4-apache # POSTFIXADMIN VERSION -ARG POSTFIXADMIN_VERSION \ - POSTFIXADMIN_SHA512 +ARG POSTFIXADMIN_VERSION # APACHE ENV APACHE_DOCUMENT_ROOT /var/www/html/public @@ -57,7 +56,6 @@ RUN set -ex; \ RUN set -eu; \ curl --fail --silent --show-error --location "https://github.com/postfixadmin/postfixadmin/archive/postfixadmin-${POSTFIXADMIN_VERSION}.tar.gz" --output postfixadmin.tar.gz ; \ - echo "${POSTFIXADMIN_SHA512} *postfixadmin.tar.gz" | sha512sum -c -; \ tar --extract --file postfixadmin.tar.gz --directory /var/www/html --strip-components=1; \ rm postfixadmin.tar.gz; \ # Does not exist in tarball but is required diff --git a/Makefile b/Makefile index 6126047..b9335e8 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,3 @@ -POSTFIXADMIN_VERSION:=3.3.10 -POSTFIXADMIN_SHA512:=e00fc9ea343a928976d191adfa01020ee0c6ddbe80a39e01ca2ee414a18247958f033970f378fe4a9974636172a5e094e57117ee9ac7b930c592f433097a7aca - # CONTAINER_RUNTIME # The CONTAINER_RUNTIME variable will be used to specified the path to a # container runtime. This is needed to start and run a container image. diff --git a/manifest.tmpl b/manifest.tmpl new file mode 100644 index 0000000..9d3ecfc --- /dev/null +++ b/manifest.tmpl @@ -0,0 +1,20 @@ +image: volkerraschek/postfixadmin:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}} +{{#if build.tags}} +tags: +{{#each build.tags}} + - {{this}} +{{/each}} + - "latest" +{{/if}} +manifests: + - + image: volkerraschek/postfixadmin:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-amd64 + platform: + architecture: amd64 + os: linux + - + image: volkerraschek/postfixadmin:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-armv7 + platform: + architecture: arm + os: linux + variant: v7 \ No newline at end of file