From 6ac93962c650f0c3efe72e71649f3446bbd4c1ec Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Tue, 3 Nov 2020 12:38:45 +0100 Subject: [PATCH] Add build on amd64 + Docker manifest publishing --- .drone-manifest.yml | 22 +++++++++++++ .drone.yml | 75 ++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 .drone-manifest.yml diff --git a/.drone-manifest.yml b/.drone-manifest.yml new file mode 100644 index 0000000..7aeb0a8 --- /dev/null +++ b/.drone-manifest.yml @@ -0,0 +1,22 @@ +image: happydns/happydns:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}} +{{#if build.tags}} +tags: +{{#each build.tags}} + - {{this}} +{{/each}} +{{/if}} +manifests: + - image: happydns/happydns:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-amd64 + platform: + architecture: amd64 + os: linux + - image: happydns/happydns:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm64 + platform: + architecture: arm64 + os: linux + variant: v8 + - image: happydns/happydns:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm + platform: + architecture: arm + os: linux + variant: v7 diff --git a/.drone.yml b/.drone.yml index 40a8e2e..0c497ac 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,7 +1,44 @@ --- kind: pipeline type: docker -name: default +name: build-amd64 + +platform: + os: linux + arch: amd64 + +steps: +- name: frontend + image: node:alpine + commands: + - apk --no-cache add python2 build-base + - yarn config set network-timeout 100000 + - yarn --cwd htdocs install + - yarn --cwd htdocs --offline build + +- name: backend + image: golang:alpine + commands: + - apk --no-cache add go-bindata + - sed -i '/yarn --cwd htdocs --offline build/d' static.go + - go generate + - go build + +- name: publish + image: plugins/docker + settings: + repo: happydns/happydns + auto_tag: true + auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} + username: + from_secret: docker_username + password: + from_secret: docker_password + +--- +kind: pipeline +type: docker +name: build-arm64 platform: os: linux @@ -23,3 +60,39 @@ steps: - sed -i '/yarn --cwd htdocs --offline build/d' static.go - go generate - go build + +- name: publish + image: plugins/docker + settings: + repo: happydns/happydns + auto_tag: true + auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} + username: + from_secret: docker_username + password: + from_secret: docker_password + +--- +kind: pipeline +name: docker-manifest + +steps: +- name: publish + image: plugins/manifest + settings: + auto_tag: true + ignore_missing: true + spec: .drone-manifest.yml + username: + from_secret: docker_username + password: + from_secret: docker_password + +trigger: + event: + - push + - tag + +depends_on: +- build-amd64 +- build-arm64