From fe9c11f3b530007204a08cbf73a93953bf4789e1 Mon Sep 17 00:00:00 2001 From: Markus Pesch Date: Tue, 12 Oct 2021 19:47:05 +0200 Subject: [PATCH] fix(ci): build image via docker plugin --- .drone.yml | 205 ++++++++++++++++++++++++++++++++++++++++++-------- manifest.tmpl | 14 ++++ 2 files changed, 187 insertions(+), 32 deletions(-) create mode 100644 manifest.tmpl diff --git a/.drone.yml b/.drone.yml index 677f7bf..1f8b8d1 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.29.0 resources: limits: cpu: 50 @@ -41,10 +41,11 @@ trigger: event: exclude: - tag + --- kind: pipeline type: docker -name: build +name: latest-amd64 platform: os: linux @@ -52,42 +53,128 @@ platform: steps: - name: build - image: docker.io/volkerraschek/build-image:latest - commands: - - make container-image/build CONTAINER_RUNTIME=docker - 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 CONTAINER_RUNTIME=docker - environment: - BIND9_IMAGE_REGISTRY_PASSWORD: + image: plugins/docker + settings: + dockerfile: Dockerfile + auto_tag: false + tags: latest-amd64 + repo: volkerraschek/build-image + username: + from_secret: container_image_registry_user + password: from_secret: container_image_registry_password + no_cache: true volumes: - name: docker_socket path: /var/run/docker.sock - when: - branch: - - master - repo: - - volker.raschek/build-image -- name: delete - image: docker.io/volkerraschek/build-image:latest - commands: - - make container-image/delete CONTAINER_RUNTIME=docker +- 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 + +depends_on: +- linter + +trigger: + branch: + - master + event: + - cron + - push + repo: + - volker.raschek/build-image + +--- +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 + +trigger: + branch: + - master + event: + - cron + - push + repo: + - volker.raschek/build-image + +--- +kind: pipeline +type: docker +name: tagged-amd64 + +platform: + os: linux + arch: amd64 + +steps: +- name: build + image: plugins/docker + settings: + dockerfile: Dockerfile + auto_tag: true + auto_tag_suffix: amd64 + repo: volkerraschek/build-image + username: + from_secret: container_image_registry_user + password: + from_secret: container_image_registry_password + no_cache: true volumes: - name: docker_socket path: /var/run/docker.sock - when: - branch: - - master - name: notify image: drillster/drone-email @@ -112,8 +199,56 @@ volumes: trigger: event: - exclude: - - tag + - tag + repo: + - volker.raschek/build-image + +--- +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 + +trigger: + event: + - tag + repo: + - volker.raschek/build-image + --- kind: pipeline type: kubernetes @@ -157,8 +292,14 @@ steps: - changed - failure +depends_on: +- tagged-manifest + trigger: + branch: + - master event: + - cron - push repo: - volker.raschek/build-image diff --git a/manifest.tmpl b/manifest.tmpl new file mode 100644 index 0000000..dfdff2e --- /dev/null +++ b/manifest.tmpl @@ -0,0 +1,14 @@ +image: volkerraschek/build-image:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}} +{{#if build.tags}} +tags: +{{#each build.tags}} + - {{this}} +{{/each}} + - "latest" +{{/if}} +manifests: + - + image: volkerraschek/build-image:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-amd64 + platform: + architecture: amd64 + os: linux \ No newline at end of file