diff --git a/.drone.jsonnet b/.drone.jsonnet
index 99832f4..1a0f351 100644
--- a/.drone.jsonnet
+++ b/.drone.jsonnet
@@ -1,50 +1,324 @@
-local pipeline = import 'pipeline.libsonnet';
+local PipelineTest = {
+ kind: 'pipeline',
+ image_pull_secrets: ['docker_config'],
+ name: 'test',
+ platform: {
+ os: 'linux',
+ arch: 'amd64',
+ },
+ steps: [
+ {
+ name: 'staticcheck',
+ image: 'golang:1.15',
+ commands: [
+ 'go run honnef.co/go/tools/cmd/staticcheck ./...',
+ ],
+ volumes: [
+ {
+ name: 'gopath',
+ path: '/go',
+ },
+ ],
+ },
+ {
+ name: 'lint',
+ image: 'golang:1.15',
+ commands: [
+ 'go run golang.org/x/lint/golint -set_exit_status ./...',
+ ],
+ volumes: [
+ {
+ name: 'gopath',
+ path: '/go',
+ },
+ ],
+ },
+ {
+ name: 'vet',
+ image: 'golang:1.15',
+ commands: [
+ 'go vet ./...',
+ ],
+ volumes: [
+ {
+ name: 'gopath',
+ path: '/go',
+ },
+ ],
+ },
+ {
+ name: 'test',
+ image: 'golang:1.15',
+ commands: [
+ 'go test -cover ./...',
+ ],
+ volumes: [
+ {
+ name: 'gopath',
+ path: '/go',
+ },
+ ],
+ },
+ ],
+ volumes: [
+ {
+ name: 'gopath',
+ temp: {},
+ },
+ ],
+ trigger: {
+ ref: ['refs/heads/master', 'refs/tags/**', 'refs/pull/**'],
+ },
+};
+
+
+local PipelineBuildBinaries = {
+ kind: 'pipeline',
+ image_pull_secrets: ['docker_config'],
+ name: 'build-binaries',
+ platform: {
+ os: 'linux',
+ arch: 'amd64',
+ },
+ steps: [
+ {
+ name: 'build',
+ image: 'techknowlogick/xgo:go-1.15.x',
+ commands: [
+ '[ -z "${DRONE_TAG}" ] && BUILD_VERSION=${DRONE_COMMIT_SHA:0:8} || BUILD_VERSION=${DRONE_TAG##v}',
+ 'mkdir -p release/',
+ "cd cmd/drone-docker-buildx && xgo -ldflags \"-s -w -X main.version=$BUILD_VERSION\" -tags netgo -targets 'linux/amd64,linux/arm-6,linux/arm64' -out drone-docker-buildx .",
+ 'mv /build/* /drone/src/release/',
+ ],
+ },
+ {
+ name: 'executable',
+ image: 'alpine',
+ commands: [
+ '$(find release/ -executable -type f | grep drone-docker-buildx-linux-amd64) --help',
+ ],
+ },
+ {
+ name: 'compress',
+ image: 'alpine',
+ commands: [
+ 'apk add upx',
+ 'find release/ -maxdepth 1 -executable -type f -exec upx {} \\;',
+ 'ls -lh release/',
+ ],
+ },
+ {
+ name: 'checksum',
+ image: 'alpine',
+ commands: [
+ 'cd release/ && sha256sum * > sha256sum.txt',
+ ],
+ },
+ {
+ name: 'publish',
+ image: 'plugins/github-release',
+ settings: {
+ overwrite: true,
+ api_key: {
+ from_secret: 'github_token',
+ },
+ files: ['release/*'],
+ title: '${DRONE_TAG}',
+ note: 'CHANGELOG.md',
+ },
+ when: {
+ ref: [
+ 'refs/tags/**',
+ ],
+ },
+ },
+ ],
+ depends_on: [
+ 'test',
+ ],
+ trigger: {
+ ref: ['refs/heads/master', 'refs/tags/**', 'refs/pull/**'],
+ },
+};
+
+local PipelineBuildContainer(arch='amd64') = {
+ kind: 'pipeline',
+ image_pull_secrets: ['docker_config'],
+ name: 'build-container-' + arch,
+ platform: {
+ os: 'linux',
+ arch: arch,
+ },
+ steps: [
+ {
+ name: 'build',
+ image: 'golang:1.15',
+ commands: [
+ '[ -z "${DRONE_TAG}" ] && BUILD_VERSION=${DRONE_COMMIT_SHA:0:8} || BUILD_VERSION=${DRONE_TAG##v}',
+ 'go build -v -ldflags "-X main.version=$BUILD_VERSION" -a -tags netgo -o release/' + arch + '/drone-docker-buildx ./cmd/drone-docker-buildx',
+ ],
+ },
+ {
+ name: 'dryrun',
+ image: 'plugins/docker:19',
+ settings: {
+ config: { from_secret: 'docker_config' },
+ dry_run: true,
+ dockerfile: 'docker/Dockerfile.' + arch,
+ repo: 'thegeeklab/${DRONE_REPO_NAME}',
+ username: { from_secret: 'docker_username' },
+ password: { from_secret: 'docker_password' },
+ },
+ depends_on: ['build'],
+ when: {
+ ref: ['refs/pull/**'],
+ },
+ },
+ {
+ name: 'publish-dockerhub',
+ image: 'plugins/docker:19',
+ settings: {
+ config: { from_secret: 'docker_config' },
+ auto_tag: true,
+ auto_tag_suffix: arch,
+ dockerfile: 'docker/Dockerfile.' + arch,
+ repo: 'thegeeklab/${DRONE_REPO_NAME}',
+ username: { from_secret: 'docker_username' },
+ password: { from_secret: 'docker_password' },
+ },
+ when: {
+ ref: ['refs/heads/master', 'refs/tags/**'],
+ },
+ depends_on: ['dryrun'],
+ },
+ {
+ name: 'publish-quay',
+ image: 'plugins/docker:19',
+ settings: {
+ config: { from_secret: 'docker_config' },
+ auto_tag: true,
+ auto_tag_suffix: arch,
+ dockerfile: 'docker/Dockerfile.' + arch,
+ registry: 'quay.io',
+ repo: 'quay.io/thegeeklab/${DRONE_REPO_NAME}',
+ username: { from_secret: 'quay_username' },
+ password: { from_secret: 'quay_password' },
+ },
+ when: {
+ ref: ['refs/heads/master', 'refs/tags/**'],
+ },
+ depends_on: ['dryrun'],
+ },
+ ],
+ depends_on: [
+ 'test',
+ ],
+ trigger: {
+ ref: ['refs/heads/master', 'refs/tags/**', 'refs/pull/**'],
+ },
+};
+
+local PipelineNotifications = {
+ kind: 'pipeline',
+ image_pull_secrets: ['docker_config'],
+ name: 'notifications',
+ platform: {
+ os: 'linux',
+ 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',
+ image: 'chko/docker-pushrm:1',
+ environment: {
+ DOCKER_PASS: {
+ from_secret: 'docker_password',
+ },
+ DOCKER_USER: {
+ from_secret: 'docker_username',
+ },
+ PUSHRM_FILE: 'README.md',
+ PUSHRM_SHORT: 'Drone plugin to build multiarch Docker images with buildx',
+ PUSHRM_TARGET: 'thegeeklab/${DRONE_REPO_NAME}',
+ },
+ when: {
+ status: ['success'],
+ },
+ },
+ {
+ name: 'pushrm-quay',
+ 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'],
+ },
+ },
+ {
+ name: 'matrix',
+ image: 'plugins/matrix',
+ settings: {
+ homeserver: { from_secret: 'matrix_homeserver' },
+ roomid: { from_secret: 'matrix_roomid' },
+ template: 'Status: **{{ build.status }}**
Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.link }}) ({{ build.branch }}) by {{ build.author }}
Message: {{ build.message }}',
+ username: { from_secret: 'matrix_username' },
+ password: { from_secret: 'matrix_password' },
+ },
+ when: {
+ status: ['success', 'failure'],
+ },
+ },
+ ],
+ depends_on: [
+ 'build-binaries',
+ 'build-container-amd64',
+ 'build-container-arm',
+ 'build-container-arm64',
+ ],
+ trigger: {
+ ref: ['refs/heads/master', 'refs/tags/**'],
+ status: ['success', 'failure'],
+ },
+};
[
- pipeline.test('linux', 'amd64'),
-
- pipeline.build('docker', 'linux', 'amd64'),
- pipeline.build('docker', 'linux', 'arm64'),
- pipeline.build('docker', 'linux', 'arm'),
- pipeline.notifications('docker', depends_on=[
- 'linux-amd64',
- 'linux-arm64',
- 'linux-arm',
- ]),
-
- pipeline.build('gcr', 'linux', 'amd64'),
- pipeline.build('gcr', 'linux', 'arm64'),
- pipeline.build('gcr', 'linux', 'arm'),
- pipeline.notifications('gcr', depends_on=[
- 'linux-amd64',
- 'linux-arm64',
- 'linux-arm',
- ]),
-
- pipeline.build('acr', 'linux', 'amd64'),
- pipeline.build('acr', 'linux', 'arm64'),
- pipeline.build('acr', 'linux', 'arm'),
- pipeline.notifications('acr', depends_on=[
- 'linux-amd64',
- 'linux-arm64',
- 'linux-arm',
- ]),
-
- pipeline.build('ecr', 'linux', 'amd64'),
- pipeline.build('ecr', 'linux', 'arm64'),
- pipeline.build('ecr', 'linux', 'arm'),
- pipeline.notifications('ecr', depends_on=[
- 'linux-amd64',
- 'linux-arm64',
- 'linux-arm',
- ]),
-
- pipeline.build('heroku', 'linux', 'amd64'),
- pipeline.build('heroku', 'linux', 'arm64'),
- pipeline.build('heroku', 'linux', 'arm'),
- pipeline.notifications('heroku', depends_on=[
- 'linux-amd64',
- 'linux-arm64',
- 'linux-arm',
- ]),
+ PipelineTest,
+ PipelineBuildBinaries,
+ PipelineBuildContainer(arch='amd64'),
+ PipelineBuildContainer(arch='arm64'),
+ PipelineBuildContainer(arch='arm'),
+ PipelineNotifications,
]
diff --git a/.drone.yml b/.drone.yml
index f520bb8..dc91b3a 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -1,30 +1,40 @@
---
kind: pipeline
-name: testing
+name: test
platform:
os: linux
arch: amd64
steps:
+- name: staticcheck
+ image: golang:1.15
+ commands:
+ - go run honnef.co/go/tools/cmd/staticcheck ./...
+ volumes:
+ - name: gopath
+ path: /go
+
+- name: lint
+ image: golang:1.15
+ commands:
+ - go run golang.org/x/lint/golint -set_exit_status ./...
+ volumes:
+ - name: gopath
+ path: /go
+
- name: vet
- pull: always
- image: golang:1.11
+ image: golang:1.15
commands:
- go vet ./...
- environment:
- GO111MODULE: on
volumes:
- name: gopath
path: /go
- name: test
- pull: always
- image: golang:1.11
+ image: golang:1.15
commands:
- go test -cover ./...
- environment:
- GO111MODULE: on
volumes:
- name: gopath
path: /go
@@ -33,1510 +43,431 @@ volumes:
- name: gopath
temp: {}
+image_pull_secrets:
+- docker_config
+
trigger:
ref:
- refs/heads/master
- - "refs/tags/**"
- - "refs/pull/**"
+ - refs/tags/**
+ - refs/pull/**
---
kind: pipeline
-type: ssh
-name: windows-1809-amd64-docker
+name: build-binaries
platform:
- os: windows
-
-server:
- host: windows.1809.amd64.plugins.drone.ci
- password:
- from_secret: windows_password
- user:
- from_secret: windows_username
+ os: linux
+ arch: amd64
steps:
- name: build
+ image: techknowlogick/xgo:go-1.15.x
commands:
- # TODO use the new DRONE_SEMVER_SHORT environment variables to
- # publish docker images for tag events.
- - go build -o release/windows/amd64/drone-docker.exe ./cmd/drone-docker
- - docker login -u $env:USERNAME -p $env:PASSWORD
- - docker build -f docker/docker/Dockerfile.windows.1809 -t plugins/docker:windows-1809-amd64 .
- - docker push plugins/docker:windows-1809-amd64
- environment:
- CGO_ENABLED: "0"
- USERNAME:
- from_secret: docker_username
- PASSWORD:
- from_secret: docker_password
+ - "[ -z \"${DRONE_TAG}\" ] && BUILD_VERSION=${DRONE_COMMIT_SHA:0:8} || BUILD_VERSION=${DRONE_TAG##v}"
+ - mkdir -p release/
+ - cd cmd/drone-docker-buildx && xgo -ldflags "-s -w -X main.version=$BUILD_VERSION" -tags netgo -targets 'linux/amd64,linux/arm-6,linux/arm64' -out drone-docker-buildx .
+ - mv /build/* /drone/src/release/
+
+- name: executable
+ image: alpine
+ commands:
+ - $(find release/ -executable -type f | grep drone-docker-buildx-linux-amd64) --help
+
+- name: compress
+ image: alpine
+ commands:
+ - apk add upx
+ - find release/ -maxdepth 1 -executable -type f -exec upx {} \;
+ - ls -lh release/
+
+- name: checksum
+ image: alpine
+ commands:
+ - cd release/ && sha256sum * > sha256sum.txt
+
+- name: publish
+ image: plugins/github-release
+ settings:
+ api_key:
+ from_secret: github_token
+ files:
+ - release/*
+ note: CHANGELOG.md
+ overwrite: true
+ title: ${DRONE_TAG}
+ when:
+ ref:
+ - refs/tags/**
+
+image_pull_secrets:
+- docker_config
trigger:
- event:
- - push
+ ref:
+ - refs/heads/master
+ - refs/tags/**
+ - refs/pull/**
depends_on:
-- testing
+- test
---
kind: pipeline
-type: ssh
-name: windows-1903-amd64-docker
+name: build-container-amd64
platform:
- os: windows
-
-server:
- host: windows.1903.amd64.plugins.drone.ci
- password:
- from_secret: windows_password
- user:
- from_secret: windows_username
+ os: linux
+ arch: amd64
steps:
- name: build
+ image: golang:1.15
commands:
- # TODO use the new DRONE_SEMVER_SHORT environment variables to
- # publish docker images for tag events.
- - go build -o release/windows/amd64/drone-docker.exe ./cmd/drone-docker
- - docker login -u $env:USERNAME -p $env:PASSWORD
- - docker build -f docker/docker/Dockerfile.windows.1903 -t plugins/docker:windows-1903-amd64 .
- - docker push plugins/docker:windows-1903-amd64
- environment:
- CGO_ENABLED: "0"
- USERNAME:
- from_secret: docker_username
- PASSWORD:
- from_secret: docker_password
-
-trigger:
- event:
- - push
-
-depends_on:
-- testing
-
----
-kind: pipeline
-type: ssh
-name: windows-1909-amd64-docker
-
-platform:
- os: windows
-
-server:
- host: windows.1909.amd64.plugins.drone.ci
- password:
- from_secret: windows_password
- user:
- from_secret: windows_username
-
-steps:
- - name: build
- commands:
- # TODO use the new DRONE_SEMVER_SHORT environment variables to
- # publish docker images for tag events.
- - go build -o release/windows/amd64/drone-docker.exe ./cmd/drone-docker
- - docker login -u $env:USERNAME -p $env:PASSWORD
- - docker build -f docker/docker/Dockerfile.windows.1909 -t plugins/docker:windows-1909-amd64 .
- - docker push plugins/docker:windows-1909-amd64
- environment:
- CGO_ENABLED: "0"
- USERNAME:
- from_secret: docker_username
- PASSWORD:
- from_secret: docker_password
-
-trigger:
- event:
- - push
-
-depends_on:
- - testing
-
----
-kind: pipeline
-name: linux-amd64-docker
-
-platform:
- os: linux
- arch: amd64
-
-steps:
-- name: build-push
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_COMMIT_SHA:0:8}\" -a -tags netgo -o release/linux/amd64/drone-docker ./cmd/drone-docker"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- exclude:
- - tag
-
-- name: build-tag
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_TAG##v}\" -a -tags netgo -o release/linux/amd64/drone-docker ./cmd/drone-docker"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- - tag
-
-- name: executable
- pull: always
- image: golang:1.11
- commands:
- - ./release/linux/amd64/drone-docker --help
+ - "[ -z \"${DRONE_TAG}\" ] && BUILD_VERSION=${DRONE_COMMIT_SHA:0:8} || BUILD_VERSION=${DRONE_TAG##v}"
+ - go build -v -ldflags "-X main.version=$BUILD_VERSION" -a -tags netgo -o release/amd64/drone-docker-buildx ./cmd/drone-docker-buildx
- name: dryrun
- pull: always
- image: plugins/docker:18
+ image: plugins/docker:19
settings:
- daemon_off: false
- dockerfile: docker/docker/Dockerfile.linux.amd64
+ config:
+ from_secret: docker_config
+ dockerfile: docker/Dockerfile.amd64
dry_run: true
password:
from_secret: docker_password
- repo: plugins/docker
- tags: linux-amd64
+ repo: thegeeklab/${DRONE_REPO_NAME}
username:
from_secret: docker_username
when:
- event:
- - pull_request
+ ref:
+ - refs/pull/**
+ depends_on:
+ - build
-- name: publish
- pull: always
- image: plugins/docker:18
+- name: publish-dockerhub
+ image: plugins/docker:19
settings:
auto_tag: true
- auto_tag_suffix: linux-amd64
- daemon_off: false
- dockerfile: docker/docker/Dockerfile.linux.amd64
+ auto_tag_suffix: amd64
+ config:
+ from_secret: docker_config
+ dockerfile: docker/Dockerfile.amd64
password:
from_secret: docker_password
- repo: plugins/docker
+ repo: thegeeklab/${DRONE_REPO_NAME}
username:
from_secret: docker_username
when:
- event:
- exclude:
- - pull_request
+ ref:
+ - refs/heads/master
+ - refs/tags/**
+ depends_on:
+ - dryrun
+
+- name: publish-quay
+ image: plugins/docker:19
+ settings:
+ auto_tag: true
+ auto_tag_suffix: amd64
+ config:
+ from_secret: docker_config
+ 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/master
+ - refs/tags/**
+ depends_on:
+ - dryrun
+
+image_pull_secrets:
+- docker_config
trigger:
ref:
- refs/heads/master
- - "refs/tags/**"
- - "refs/pull/**"
+ - refs/tags/**
+ - refs/pull/**
depends_on:
-- testing
+- test
---
kind: pipeline
-name: linux-arm64-docker
+name: build-container-arm64
platform:
os: linux
arch: arm64
steps:
-- name: build-push
- pull: always
- image: golang:1.11
+- name: build
+ image: golang:1.15
commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_COMMIT_SHA:0:8}\" -a -tags netgo -o release/linux/arm64/drone-docker ./cmd/drone-docker"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- exclude:
- - tag
-
-- name: build-tag
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_TAG##v}\" -a -tags netgo -o release/linux/arm64/drone-docker ./cmd/drone-docker"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- - tag
-
-- name: executable
- pull: always
- image: golang:1.11
- commands:
- - ./release/linux/arm64/drone-docker --help
+ - "[ -z \"${DRONE_TAG}\" ] && BUILD_VERSION=${DRONE_COMMIT_SHA:0:8} || BUILD_VERSION=${DRONE_TAG##v}"
+ - go build -v -ldflags "-X main.version=$BUILD_VERSION" -a -tags netgo -o release/arm64/drone-docker-buildx ./cmd/drone-docker-buildx
- name: dryrun
- pull: always
- image: plugins/docker:18
+ image: plugins/docker:19
settings:
- daemon_off: false
- dockerfile: docker/docker/Dockerfile.linux.arm64
+ config:
+ from_secret: docker_config
+ dockerfile: docker/Dockerfile.arm64
dry_run: true
password:
from_secret: docker_password
- repo: plugins/docker
- tags: linux-arm64
+ repo: thegeeklab/${DRONE_REPO_NAME}
username:
from_secret: docker_username
when:
- event:
- - pull_request
+ ref:
+ - refs/pull/**
+ depends_on:
+ - build
-- name: publish
- pull: always
- image: plugins/docker:18
+- name: publish-dockerhub
+ image: plugins/docker:19
settings:
auto_tag: true
- auto_tag_suffix: linux-arm64
- daemon_off: false
- dockerfile: docker/docker/Dockerfile.linux.arm64
+ auto_tag_suffix: arm64
+ config:
+ from_secret: docker_config
+ dockerfile: docker/Dockerfile.arm64
password:
from_secret: docker_password
- repo: plugins/docker
+ repo: thegeeklab/${DRONE_REPO_NAME}
username:
from_secret: docker_username
when:
- event:
- exclude:
- - pull_request
+ ref:
+ - refs/heads/master
+ - refs/tags/**
+ depends_on:
+ - dryrun
+
+- name: publish-quay
+ image: plugins/docker:19
+ settings:
+ auto_tag: true
+ auto_tag_suffix: arm64
+ config:
+ from_secret: docker_config
+ dockerfile: docker/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/master
+ - refs/tags/**
+ depends_on:
+ - dryrun
+
+image_pull_secrets:
+- docker_config
trigger:
ref:
- refs/heads/master
- - "refs/tags/**"
- - "refs/pull/**"
+ - refs/tags/**
+ - refs/pull/**
depends_on:
-- testing
+- test
---
kind: pipeline
-name: linux-arm-docker
+name: build-container-arm
platform:
os: linux
arch: arm
steps:
-- name: build-push
- pull: always
- image: golang:1.11
+- name: build
+ image: golang:1.15
commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_COMMIT_SHA:0:8}\" -a -tags netgo -o release/linux/arm/drone-docker ./cmd/drone-docker"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- exclude:
- - tag
-
-- name: build-tag
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_TAG##v}\" -a -tags netgo -o release/linux/arm/drone-docker ./cmd/drone-docker"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- - tag
-
-- name: executable
- pull: always
- image: golang:1.11
- commands:
- - ./release/linux/arm/drone-docker --help
+ - "[ -z \"${DRONE_TAG}\" ] && BUILD_VERSION=${DRONE_COMMIT_SHA:0:8} || BUILD_VERSION=${DRONE_TAG##v}"
+ - go build -v -ldflags "-X main.version=$BUILD_VERSION" -a -tags netgo -o release/arm/drone-docker-buildx ./cmd/drone-docker-buildx
- name: dryrun
- pull: always
- image: plugins/docker:18
+ image: plugins/docker:19
settings:
- daemon_off: false
- dockerfile: docker/docker/Dockerfile.linux.arm
+ config:
+ from_secret: docker_config
+ dockerfile: docker/Dockerfile.arm
dry_run: true
password:
from_secret: docker_password
- repo: plugins/docker
- tags: linux-arm
+ repo: thegeeklab/${DRONE_REPO_NAME}
username:
from_secret: docker_username
when:
- event:
- - pull_request
+ ref:
+ - refs/pull/**
+ depends_on:
+ - build
-- name: publish
- pull: always
- image: plugins/docker:18
+- name: publish-dockerhub
+ image: plugins/docker:19
settings:
auto_tag: true
- auto_tag_suffix: linux-arm
- daemon_off: false
- dockerfile: docker/docker/Dockerfile.linux.arm
+ auto_tag_suffix: arm
+ config:
+ from_secret: docker_config
+ dockerfile: docker/Dockerfile.arm
password:
from_secret: docker_password
- repo: plugins/docker
+ repo: thegeeklab/${DRONE_REPO_NAME}
username:
from_secret: docker_username
when:
- event:
- exclude:
- - pull_request
+ ref:
+ - refs/heads/master
+ - refs/tags/**
+ depends_on:
+ - dryrun
+
+- name: publish-quay
+ image: plugins/docker:19
+ settings:
+ auto_tag: true
+ auto_tag_suffix: arm
+ config:
+ from_secret: docker_config
+ dockerfile: docker/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/master
+ - refs/tags/**
+ depends_on:
+ - dryrun
+
+image_pull_secrets:
+- docker_config
trigger:
ref:
- refs/heads/master
- - "refs/tags/**"
- - "refs/pull/**"
+ - refs/tags/**
+ - refs/pull/**
depends_on:
-- testing
+- test
---
kind: pipeline
-name: notifications-docker
+name: notifications
platform:
os: linux
arch: amd64
steps:
-- name: manifest
- pull: always
+- name: manifest-dockerhub
image: plugins/manifest
settings:
auto_tag: true
ignore_missing: true
password:
from_secret: docker_password
- spec: docker/docker/manifest.tmpl
- username:
- from_secret: docker_username
-
-- name: microbadger
- pull: always
- image: plugins/webhook
- failure: ignore
- settings:
- urls:
- from_secret: microbadger_docker
-
-trigger:
- ref:
- - refs/heads/master
- - "refs/tags/**"
-
-depends_on:
-- windows-1809-amd64-docker
-- windows-1903-amd64-docker
-- windows-1909-amd64-docker
-- linux-amd64-docker
-- linux-arm64-docker
-- linux-arm-docker
-
----
-kind: pipeline
-name: linux-amd64-gcr
-
-platform:
- os: linux
- arch: amd64
-
-steps:
-- name: build-push
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_COMMIT_SHA:0:8}\" -a -tags netgo -o release/linux/amd64/drone-gcr ./cmd/drone-gcr"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- exclude:
- - tag
-
-- name: build-tag
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_TAG##v}\" -a -tags netgo -o release/linux/amd64/drone-gcr ./cmd/drone-gcr"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- - tag
-
-- name: dryrun
- pull: always
- image: plugins/docker:18
- settings:
- daemon_off: false
- dockerfile: docker/gcr/Dockerfile.linux.amd64
- dry_run: true
- password:
- from_secret: docker_password
- repo: plugins/gcr
- tags: linux-amd64
+ spec: docker/manifest.tmpl
username:
from_secret: docker_username
when:
- event:
- - pull_request
+ status:
+ - success
-- name: publish
- pull: always
- image: plugins/docker:18
- settings:
- auto_tag: true
- auto_tag_suffix: linux-amd64
- daemon_off: false
- dockerfile: docker/gcr/Dockerfile.linux.amd64
- password:
- from_secret: docker_password
- repo: plugins/gcr
- username:
- from_secret: docker_username
- when:
- event:
- exclude:
- - pull_request
-
-trigger:
- ref:
- - refs/heads/master
- - "refs/tags/**"
- - "refs/pull/**"
-
-depends_on:
-- linux-amd64-docker
-
----
-kind: pipeline
-name: linux-arm64-gcr
-
-platform:
- os: linux
- arch: arm64
-
-steps:
-- name: build-push
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_COMMIT_SHA:0:8}\" -a -tags netgo -o release/linux/arm64/drone-gcr ./cmd/drone-gcr"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- exclude:
- - tag
-
-- name: build-tag
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_TAG##v}\" -a -tags netgo -o release/linux/arm64/drone-gcr ./cmd/drone-gcr"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- - tag
-
-- name: dryrun
- pull: always
- image: plugins/docker:18
- settings:
- daemon_off: false
- dockerfile: docker/gcr/Dockerfile.linux.arm64
- dry_run: true
- password:
- from_secret: docker_password
- repo: plugins/gcr
- tags: linux-arm64
- username:
- from_secret: docker_username
- when:
- event:
- - pull_request
-
-- name: publish
- pull: always
- image: plugins/docker:18
- settings:
- auto_tag: true
- auto_tag_suffix: linux-arm64
- daemon_off: false
- dockerfile: docker/gcr/Dockerfile.linux.arm64
- password:
- from_secret: docker_password
- repo: plugins/gcr
- username:
- from_secret: docker_username
- when:
- event:
- exclude:
- - pull_request
-
-trigger:
- ref:
- - refs/heads/master
- - "refs/tags/**"
- - "refs/pull/**"
-
-depends_on:
-- linux-arm64-docker
-
----
-kind: pipeline
-name: linux-arm-gcr
-
-platform:
- os: linux
- arch: arm
-
-steps:
-- name: build-push
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_COMMIT_SHA:0:8}\" -a -tags netgo -o release/linux/arm/drone-gcr ./cmd/drone-gcr"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- exclude:
- - tag
-
-- name: build-tag
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_TAG##v}\" -a -tags netgo -o release/linux/arm/drone-gcr ./cmd/drone-gcr"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- - tag
-
-- name: dryrun
- pull: always
- image: plugins/docker:18
- settings:
- daemon_off: false
- dockerfile: docker/gcr/Dockerfile.linux.arm
- dry_run: true
- password:
- from_secret: docker_password
- repo: plugins/gcr
- tags: linux-arm
- username:
- from_secret: docker_username
- when:
- event:
- - pull_request
-
-- name: publish
- pull: always
- image: plugins/docker:18
- settings:
- auto_tag: true
- auto_tag_suffix: linux-arm
- daemon_off: false
- dockerfile: docker/gcr/Dockerfile.linux.arm
- password:
- from_secret: docker_password
- repo: plugins/gcr
- username:
- from_secret: docker_username
- when:
- event:
- exclude:
- - pull_request
-
-trigger:
- ref:
- - refs/heads/master
- - "refs/tags/**"
- - "refs/pull/**"
-
-depends_on:
-- linux-arm-docker
-
----
-kind: pipeline
-name: notifications-gcr
-
-platform:
- os: linux
- arch: amd64
-
-steps:
-- name: manifest
- pull: always
+- name: manifest-quay
image: plugins/manifest
settings:
auto_tag: true
ignore_missing: true
password:
- from_secret: docker_password
- spec: docker/gcr/manifest.tmpl
+ from_secret: quay_password
+ spec: docker/manifest-quay.tmpl
username:
- from_secret: docker_username
+ from_secret: quay_username
+ when:
+ status:
+ - success
-- name: microbadger
- pull: always
- image: plugins/webhook
- failure: ignore
+- name: pushrm-dockerhub
+ image: chko/docker-pushrm:1
+ environment:
+ DOCKER_PASS:
+ from_secret: docker_password
+ DOCKER_USER:
+ from_secret: docker_username
+ PUSHRM_FILE: README.md
+ PUSHRM_SHORT: Drone plugin to build multiarch Docker images with buildx
+ PUSHRM_TARGET: thegeeklab/${DRONE_REPO_NAME}
+ when:
+ status:
+ - success
+
+- name: pushrm-quay
+ 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
+
+- name: matrix
+ image: plugins/matrix
settings:
- urls:
- from_secret: microbadger_gcr
+ homeserver:
+ from_secret: matrix_homeserver
+ password:
+ from_secret: matrix_password
+ roomid:
+ from_secret: matrix_roomid
+ template: "Status: **{{ build.status }}**
Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.link }}) ({{ build.branch }}) by {{ build.author }}
Message: {{ build.message }}"
+ username:
+ from_secret: matrix_username
+ when:
+ status:
+ - success
+ - failure
+
+image_pull_secrets:
+- docker_config
trigger:
ref:
- refs/heads/master
- - "refs/tags/**"
+ - refs/tags/**
+ status:
+ - success
+ - failure
depends_on:
-- linux-amd64-gcr
-- linux-arm64-gcr
-- linux-arm-gcr
+- build-binaries
+- build-container-amd64
+- build-container-arm
+- build-container-arm64
---
-kind: pipeline
-name: linux-amd64-ecr
+kind: signature
+hmac: 39198ae608d35d3f8b0a0a69ac66243cf31ccc4b0303b39a64b61ff738daa292
-platform:
- os: linux
- arch: amd64
-
-steps:
-- name: build-push
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_COMMIT_SHA:0:8}\" -a -tags netgo -o release/linux/amd64/drone-ecr ./cmd/drone-ecr"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- exclude:
- - tag
-
-- name: build-tag
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_TAG##v}\" -a -tags netgo -o release/linux/amd64/drone-ecr ./cmd/drone-ecr"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- - tag
-
-- name: dryrun
- pull: always
- image: plugins/docker:18
- settings:
- daemon_off: false
- dockerfile: docker/ecr/Dockerfile.linux.amd64
- dry_run: true
- password:
- from_secret: docker_password
- repo: plugins/ecr
- tags: linux-amd64
- username:
- from_secret: docker_username
- when:
- event:
- - pull_request
-
-- name: publish
- pull: always
- image: plugins/docker:18
- settings:
- auto_tag: true
- auto_tag_suffix: linux-amd64
- daemon_off: false
- dockerfile: docker/ecr/Dockerfile.linux.amd64
- password:
- from_secret: docker_password
- repo: plugins/ecr
- username:
- from_secret: docker_username
- when:
- event:
- exclude:
- - pull_request
-
-trigger:
- ref:
- - refs/heads/master
- - "refs/tags/**"
- - "refs/pull/**"
-
-depends_on:
-- linux-amd64-docker
-
----
-kind: pipeline
-name: linux-arm64-ecr
-
-platform:
- os: linux
- arch: arm64
-
-steps:
-- name: build-push
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_COMMIT_SHA:0:8}\" -a -tags netgo -o release/linux/arm64/drone-ecr ./cmd/drone-ecr"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- exclude:
- - tag
-
-- name: build-tag
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_TAG##v}\" -a -tags netgo -o release/linux/arm64/drone-ecr ./cmd/drone-ecr"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- - tag
-
-- name: dryrun
- pull: always
- image: plugins/docker:18
- settings:
- daemon_off: false
- dockerfile: docker/ecr/Dockerfile.linux.arm64
- dry_run: true
- password:
- from_secret: docker_password
- repo: plugins/ecr
- tags: linux-arm64
- username:
- from_secret: docker_username
- when:
- event:
- - pull_request
-
-- name: publish
- pull: always
- image: plugins/docker:18
- settings:
- auto_tag: true
- auto_tag_suffix: linux-arm64
- daemon_off: false
- dockerfile: docker/ecr/Dockerfile.linux.arm64
- password:
- from_secret: docker_password
- repo: plugins/ecr
- username:
- from_secret: docker_username
- when:
- event:
- exclude:
- - pull_request
-
-trigger:
- ref:
- - refs/heads/master
- - "refs/tags/**"
- - "refs/pull/**"
-
-depends_on:
-- linux-arm64-docker
-
----
-kind: pipeline
-name: linux-arm-ecr
-
-platform:
- os: linux
- arch: arm
-
-steps:
-- name: build-push
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_COMMIT_SHA:0:8}\" -a -tags netgo -o release/linux/arm/drone-ecr ./cmd/drone-ecr"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- exclude:
- - tag
-
-- name: build-tag
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_TAG##v}\" -a -tags netgo -o release/linux/arm/drone-ecr ./cmd/drone-ecr"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- - tag
-
-- name: dryrun
- pull: always
- image: plugins/docker:18
- settings:
- daemon_off: false
- dockerfile: docker/ecr/Dockerfile.linux.arm
- dry_run: true
- password:
- from_secret: docker_password
- repo: plugins/ecr
- tags: linux-arm
- username:
- from_secret: docker_username
- when:
- event:
- - pull_request
-
-- name: publish
- pull: always
- image: plugins/docker:18
- settings:
- auto_tag: true
- auto_tag_suffix: linux-arm
- daemon_off: false
- dockerfile: docker/ecr/Dockerfile.linux.arm
- password:
- from_secret: docker_password
- repo: plugins/ecr
- username:
- from_secret: docker_username
- when:
- event:
- exclude:
- - pull_request
-
-trigger:
- ref:
- - refs/heads/master
- - "refs/tags/**"
- - "refs/pull/**"
-
-depends_on:
-- linux-arm-docker
-
----
-kind: pipeline
-name: notifications-ecr
-
-platform:
- os: linux
- arch: amd64
-
-steps:
-- name: manifest
- pull: always
- image: plugins/manifest
- settings:
- auto_tag: true
- ignore_missing: true
- password:
- from_secret: docker_password
- spec: docker/ecr/manifest.tmpl
- username:
- from_secret: docker_username
-
-- name: microbadger
- pull: always
- image: plugins/webhook
- failure: ignore
- settings:
- urls:
- from_secret: microbadger_ecr
-
-trigger:
- ref:
- - refs/heads/master
- - "refs/tags/**"
-
-depends_on:
-- linux-amd64-ecr
-- linux-arm64-ecr
-- linux-arm-ecr
-
----
-kind: pipeline
-name: linux-amd64-heroku
-
-platform:
- os: linux
- arch: amd64
-
-steps:
-- name: build-push
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_COMMIT_SHA:0:8}\" -a -tags netgo -o release/linux/amd64/drone-heroku ./cmd/drone-heroku"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- exclude:
- - tag
-
-- name: build-tag
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_TAG##v}\" -a -tags netgo -o release/linux/amd64/drone-heroku ./cmd/drone-heroku"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- - tag
-
-- name: dryrun
- pull: always
- image: plugins/docker:18
- settings:
- daemon_off: false
- dockerfile: docker/heroku/Dockerfile.linux.amd64
- dry_run: true
- password:
- from_secret: docker_password
- repo: plugins/heroku
- tags: linux-amd64
- username:
- from_secret: docker_username
- when:
- event:
- - pull_request
-
-- name: publish
- pull: always
- image: plugins/docker:18
- settings:
- auto_tag: true
- auto_tag_suffix: linux-amd64
- daemon_off: false
- dockerfile: docker/heroku/Dockerfile.linux.amd64
- password:
- from_secret: docker_password
- repo: plugins/heroku
- username:
- from_secret: docker_username
- when:
- event:
- exclude:
- - pull_request
-
-trigger:
- ref:
- - refs/heads/master
- - "refs/tags/**"
- - "refs/pull/**"
-
-depends_on:
-- linux-amd64-docker
-
----
-kind: pipeline
-name: linux-arm64-heroku
-
-platform:
- os: linux
- arch: arm64
-
-steps:
-- name: build-push
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_COMMIT_SHA:0:8}\" -a -tags netgo -o release/linux/arm64/drone-heroku ./cmd/drone-heroku"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- exclude:
- - tag
-
-- name: build-tag
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_TAG##v}\" -a -tags netgo -o release/linux/arm64/drone-heroku ./cmd/drone-heroku"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- - tag
-
-- name: dryrun
- pull: always
- image: plugins/docker:18
- settings:
- daemon_off: false
- dockerfile: docker/heroku/Dockerfile.linux.arm64
- dry_run: true
- password:
- from_secret: docker_password
- repo: plugins/heroku
- tags: linux-arm64
- username:
- from_secret: docker_username
- when:
- event:
- - pull_request
-
-- name: publish
- pull: always
- image: plugins/docker:18
- settings:
- auto_tag: true
- auto_tag_suffix: linux-arm64
- daemon_off: false
- dockerfile: docker/heroku/Dockerfile.linux.arm64
- password:
- from_secret: docker_password
- repo: plugins/heroku
- username:
- from_secret: docker_username
- when:
- event:
- exclude:
- - pull_request
-
-trigger:
- ref:
- - refs/heads/master
- - "refs/tags/**"
- - "refs/pull/**"
-
-depends_on:
-- linux-arm64-docker
-
----
-kind: pipeline
-name: linux-arm-heroku
-
-platform:
- os: linux
- arch: arm
-
-steps:
-- name: build-push
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_COMMIT_SHA:0:8}\" -a -tags netgo -o release/linux/arm/drone-heroku ./cmd/drone-heroku"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- exclude:
- - tag
-
-- name: build-tag
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_TAG##v}\" -a -tags netgo -o release/linux/arm/drone-heroku ./cmd/drone-heroku"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- - tag
-
-- name: dryrun
- pull: always
- image: plugins/docker:18
- settings:
- daemon_off: false
- dockerfile: docker/heroku/Dockerfile.linux.arm
- dry_run: true
- password:
- from_secret: docker_password
- repo: plugins/heroku
- tags: linux-arm
- username:
- from_secret: docker_username
- when:
- event:
- - pull_request
-
-- name: publish
- pull: always
- image: plugins/docker:18
- settings:
- auto_tag: true
- auto_tag_suffix: linux-arm
- daemon_off: false
- dockerfile: docker/heroku/Dockerfile.linux.arm
- password:
- from_secret: docker_password
- repo: plugins/heroku
- username:
- from_secret: docker_username
- when:
- event:
- exclude:
- - pull_request
-
-trigger:
- ref:
- - refs/heads/master
- - "refs/tags/**"
- - "refs/pull/**"
-
-depends_on:
-- linux-arm-docker
-
----
-kind: pipeline
-name: notifications-heroku
-
-platform:
- os: linux
- arch: amd64
-
-steps:
-- name: manifest
- pull: always
- image: plugins/manifest
- settings:
- auto_tag: true
- ignore_missing: true
- password:
- from_secret: docker_password
- spec: docker/heroku/manifest.tmpl
- username:
- from_secret: docker_username
-
-- name: microbadger
- pull: always
- image: plugins/webhook
- failure: ignore
- settings:
- urls:
- from_secret: microbadger_heroku
-
-trigger:
- ref:
- - refs/heads/master
- - "refs/tags/**"
-
-depends_on:
-- linux-amd64-heroku
-- linux-arm64-heroku
-- linux-arm-heroku
-
----
-kind: pipeline
-name: linux-amd64-acr
-
-platform:
- os: linux
- arch: amd64
-
-steps:
-- name: build-push
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.build=${DRONE_BUILD_NUMBER}\" -a -tags netgo -o release/linux/amd64/drone-acr ./cmd/drone-acr"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- exclude:
- - tag
-
-- name: build-tag
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}\" -a -tags netgo -o release/linux/amd64/drone-acr ./cmd/drone-acr"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- - tag
-
-- name: dryrun
- pull: always
- image: plugins/docker:18
- settings:
- daemon_off: false
- dockerfile: docker/acr/Dockerfile.linux.amd64
- dry_run: true
- password:
- from_secret: docker_password
- repo: plugins/acr
- tags: linux-amd64
- username:
- from_secret: docker_username
- when:
- event:
- - pull_request
-
-- name: publish
- pull: always
- image: plugins/docker:18
- settings:
- auto_tag: true
- auto_tag_suffix: linux-amd64
- daemon_off: false
- dockerfile: docker/acr/Dockerfile.linux.amd64
- password:
- from_secret: docker_password
- repo: plugins/acr
- username:
- from_secret: docker_username
- when:
- event:
- exclude:
- - pull_request
-
-trigger:
- ref:
- - refs/heads/master
- - "refs/tags/**"
- - "refs/pull/**"
-
-depends_on:
-- linux-amd64-docker
-
----
-kind: pipeline
-name: linux-arm64-acr
-
-platform:
- os: linux
- arch: arm64
-
-steps:
-- name: build-push
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.build=${DRONE_BUILD_NUMBER}\" -a -tags netgo -o release/linux/arm64/drone-acr ./cmd/drone-acr"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- exclude:
- - tag
-
-- name: build-tag
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}\" -a -tags netgo -o release/linux/arm64/drone-acr ./cmd/drone-acr"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- - tag
-
-- name: dryrun
- pull: always
- image: plugins/docker:18
- settings:
- daemon_off: false
- dockerfile: docker/acr/Dockerfile.linux.arm64
- dry_run: true
- password:
- from_secret: docker_password
- repo: plugins/acr
- tags: linux-arm64
- username:
- from_secret: docker_username
- when:
- event:
- - pull_request
-
-- name: publish
- pull: always
- image: plugins/docker:18
- settings:
- auto_tag: true
- auto_tag_suffix: linux-arm64
- daemon_off: false
- dockerfile: docker/acr/Dockerfile.linux.arm64
- password:
- from_secret: docker_password
- repo: plugins/acr
- username:
- from_secret: docker_username
- when:
- event:
- exclude:
- - pull_request
-
-trigger:
- ref:
- - refs/heads/master
- - "refs/tags/**"
- - "refs/pull/**"
-
-depends_on:
-- linux-arm64-docker
-
----
-kind: pipeline
-name: linux-arm-acr
-
-platform:
- os: linux
- arch: arm
-
-steps:
-- name: build-push
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.build=${DRONE_BUILD_NUMBER}\" -a -tags netgo -o release/linux/arm/drone-acr ./cmd/drone-acr"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- exclude:
- - tag
-
-- name: build-tag
- pull: always
- image: golang:1.11
- commands:
- - "go build -v -ldflags \"-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}\" -a -tags netgo -o release/linux/arm/drone-acr ./cmd/drone-acr"
- environment:
- CGO_ENABLED: 0
- GO111MODULE: on
- when:
- event:
- - tag
-
-- name: dryrun
- pull: always
- image: plugins/docker:18
- settings:
- daemon_off: false
- dockerfile: docker/acr/Dockerfile.linux.arm
- dry_run: true
- password:
- from_secret: docker_password
- repo: plugins/acr
- tags: linux-arm
- username:
- from_secret: docker_username
- when:
- event:
- - pull_request
-
-- name: publish
- pull: always
- image: plugins/docker:18
- settings:
- auto_tag: true
- auto_tag_suffix: linux-arm
- daemon_off: false
- dockerfile: docker/acr/Dockerfile.linux.arm
- password:
- from_secret: docker_password
- repo: plugins/acr
- username:
- from_secret: docker_username
- when:
- event:
- exclude:
- - pull_request
-
-trigger:
- ref:
- - refs/heads/master
- - "refs/tags/**"
- - "refs/pull/**"
-
-depends_on:
-- linux-arm-docker
-
----
-kind: pipeline
-name: notifications-acr
-
-platform:
- os: linux
- arch: amd64
-
-steps:
-- name: manifest
- pull: always
- image: plugins/manifest
- settings:
- ignore_missing: true
- password:
- from_secret: docker_password
- spec: docker/acr/manifest.tmpl
- username:
- from_secret: docker_username
-
-- name: microbadger
- pull: always
- image: plugins/webhook
- failure: ignore
- settings:
- url:
- from_secret: microbadger_acr
-
-trigger:
- ref:
- - refs/heads/master
- - "refs/tags/**"
-
-depends_on:
-- linux-amd64-acr
-- linux-arm64-acr
-- linux-arm-acr
-
-
-...
\ No newline at end of file
+...
diff --git a/.github/issue_template.md b/.github/issue_template.md
deleted file mode 100644
index 3f95605..0000000
--- a/.github/issue_template.md
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
deleted file mode 100644
index 8b13789..0000000
--- a/.github/pull_request_template.md
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/.github/settings.yml b/.github/settings.yml
index f647429..ced2bbf 100644
--- a/.github/settings.yml
+++ b/.github/settings.yml
@@ -1,13 +1,12 @@
repository:
- name: drone-docker
- description: Drone plugin for publishing Docker images
- homepage: http://plugins.drone.io/drone-plugins/drone-docker
+ name: drone-docker-buildx
+ description: Drone plugin to build multiarch Docker images with buildx
topics: drone, drone-plugin
private: false
has_issues: true
has_wiki: false
- has_downloads: false
+ has_downloads: true
default_branch: master
@@ -19,6 +18,9 @@ labels:
- name: bug
color: d73a4a
description: Something isn't working
+ - name: documentation
+ color: 0075ca
+ description: Improvements or additions to documentation
- name: duplicate
color: cfd3d7
description: This issue or pull request already exists
@@ -37,33 +39,17 @@ labels:
- name: question
color: d876e3
description: Further information is requested
- - name: renovate
- color: e99695
- description: Automated action from Renovate
- name: wontfix
color: ffffff
description: This will not be worked on
-teams:
- - name: Admins
- permission: admin
-
branches:
- name: master
protection:
- required_pull_request_reviews:
- required_approving_review_count: 1
- dismiss_stale_reviews: false
- require_code_owner_reviews: false
- dismissal_restrictions:
- teams:
- - Admins
+ required_pull_request_reviews: null
required_status_checks:
strict: true
contexts:
- continuous-integration/drone/pr
- enforce_admins: false
- restrictions:
- users: []
- teams:
- - Admins
+ enforce_admins: null
+ restrictions: null
diff --git a/.gitignore b/.gitignore
index 5077f86..48170f7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
-release
+/release/
+drone-docker-buildx*
+
coverage.out
-vendor
diff --git a/LICENSE b/LICENSE
index 8f71f43..e07ea97 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,3 +1,4 @@
+
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
@@ -178,7 +179,7 @@
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "{}"
+ boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
@@ -186,7 +187,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.
- Copyright {yyyy} {name of copyright owner}
+ Copyright 2021 Robert Kaussow
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -199,4 +200,3 @@
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-
diff --git a/README.md b/README.md
index 2433bcb..60cfbbe 100644
--- a/README.md
+++ b/README.md
@@ -1,74 +1,56 @@
-# drone-docker
+# drone-docker-buildx
-[![Build Status](http://cloud.drone.io/api/badges/drone-plugins/drone-docker/status.svg)](http://cloud.drone.io/drone-plugins/drone-docker)
-[![Gitter chat](https://badges.gitter.im/drone/drone.png)](https://gitter.im/drone/drone)
-[![Join the discussion at https://discourse.drone.io](https://img.shields.io/badge/discourse-forum-orange.svg)](https://discourse.drone.io)
-[![Drone questions at https://stackoverflow.com](https://img.shields.io/badge/drone-stackoverflow-orange.svg)](https://stackoverflow.com/questions/tagged/drone.io)
-[![](https://images.microbadger.com/badges/image/plugins/docker.svg)](https://microbadger.com/images/plugins/docker "Get your own image badge on microbadger.com")
-[![Go Doc](https://godoc.org/github.com/drone-plugins/drone-docker?status.svg)](http://godoc.org/github.com/drone-plugins/drone-docker)
-[![Go Report](https://goreportcard.com/badge/github.com/drone-plugins/drone-docker)](https://goreportcard.com/report/github.com/drone-plugins/drone-docker)
+Drone plugin to build multiarch Docker images with buildx
-Drone plugin uses Docker-in-Docker to build and publish Docker images to a container registry. For the usage information and a listing of the available options please take a look at [the docs](http://plugins.drone.io/drone-plugins/drone-docker/).
+[![Build Status](https://img.shields.io/drone/build/thegeeklab/drone-docker-buildx?logo=drone)](https://cloud.drone.io/thegeeklab/drone-docker-buildx)
+[![Docker Hub](https://img.shields.io/badge/dockerhub-latest-blue.svg?logo=docker&logoColor=white)](https://hub.docker.com/r/thegeeklab/drone-docker-buildx)
+[![Quay.io](https://img.shields.io/badge/quay-latest-blue.svg?logo=docker&logoColor=white)](https://quay.io/repository/thegeeklab/drone-docker-buildx)
+[![Go Report Card](https://goreportcard.com/badge/github.com/thegeeklab/drone-docker-buildx)](https://goreportcard.com/report/github.com/thegeeklab/drone-docker-buildx)
+[![GitHub contributors](https://img.shields.io/github/contributors/thegeeklab/drone-docker-buildx)](https://github.com/thegeeklab/drone-docker-buildx/graphs/contributors)
+[![Source: GitHub](https://img.shields.io/badge/source-github-blue.svg?logo=github&logoColor=white)](https://github.com/thegeeklab/drone-docker-buildx)
+[![License: MIT](https://img.shields.io/github/license/thegeeklab/drone-docker-buildx)](https://github.com/thegeeklab/drone-docker-buildx/blob/main/LICENSE)
+
+Drone plugin to build multiarch Docker images with buildx.
## Build
-Build the binaries with the following commands:
+Build the binary with the following command:
-```console
+```Shell
export GOOS=linux
export GOARCH=amd64
export CGO_ENABLED=0
export GO111MODULE=on
-go build -v -a -tags netgo -o release/linux/amd64/drone-docker ./cmd/drone-docker
-go build -v -a -tags netgo -o release/linux/amd64/drone-gcr ./cmd/drone-gcr
-go build -v -a -tags netgo -o release/linux/amd64/drone-ecr ./cmd/drone-ecr
-go build -v -a -tags netgo -o release/linux/amd64/drone-acr ./cmd/drone-acr
-go build -v -a -tags netgo -o release/linux/amd64/drone-heroku ./cmd/drone-heroku
+go build -v -a -tags netgo -o release/drone-docker-buildx
```
-## Docker
+Build the Docker image with the following command:
-Build the Docker images with the following commands:
-
-```console
-docker build \
- --label org.label-schema.build-date=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
- --label org.label-schema.vcs-ref=$(git rev-parse --short HEAD) \
- --file docker/docker/Dockerfile.linux.amd64 --tag plugins/docker .
-
-docker build \
- --label org.label-schema.build-date=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
- --label org.label-schema.vcs-ref=$(git rev-parse --short HEAD) \
- --file docker/gcr/Dockerfile.linux.amd64 --tag plugins/gcr .
-
-docker build \
- --label org.label-schema.build-date=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
- --label org.label-schema.vcs-ref=$(git rev-parse --short HEAD) \
- --file docker/ecr/Dockerfile.linux.amd64 --tag plugins/ecr .
-
-docker build \
- --label org.label-schema.build-date=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
- --label org.label-schema.vcs-ref=$(git rev-parse --short HEAD) \
- --file docker/acr/Dockerfile.linux.amd64 --tag plugins/acr .
-
-docker build \
- --label org.label-schema.build-date=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
- --label org.label-schema.vcs-ref=$(git rev-parse --short HEAD) \
- --file docker/heroku/Dockerfile.linux.amd64 --tag plugins/heroku .
+```Shell
+docker build --file docker/Dockerfile.amd64 --tag thegeeklab/drone-docker-buildx .
```
## Usage
-> Notice: Be aware that the Docker plugin currently requires privileged capabilities, otherwise the integrated Docker daemon is not able to start.
+> Notice: Be aware that the tis plugin requires privileged capabilities, otherwise the integrated Docker daemon is not able to start.
```console
docker run --rm \
-e PLUGIN_TAG=latest \
-e PLUGIN_REPO=octocat/hello-world \
- -e DRONE_COMMIT_SHA=d8dbe4d94f15fe89232e0402c6e8a0ddf21af3ab \
+ -e DRONE_COMMIT_SHA=00000000 \
-v $(pwd):$(pwd) \
-w $(pwd) \
--privileged \
- plugins/docker --dry-run
+ thegeeklab/drone-docker-buildx --dry-run
```
+
+## Contributors
+
+Special thanks goes to all [contributors](https://github.com/thegeeklab/drone-docker-buildx/graphs/contributors). If you would like to contribute,
+please see the [instructions](https://github.com/thegeeklab/drone-docker-buildx/blob/main/CONTRIBUTING.md).
+
+## License
+
+This project is licensed under the MIT License - see the [LICENSE](https://github.com/thegeeklab/drone-docker-buildx/blob/main/LICENSE) file for details.
diff --git a/cmd/drone-acr/main.go b/cmd/drone-acr/main.go
deleted file mode 100644
index 62e65c5..0000000
--- a/cmd/drone-acr/main.go
+++ /dev/null
@@ -1,60 +0,0 @@
-package main
-
-import (
- "fmt"
- "os"
- "os/exec"
- "strings"
-
- "github.com/joho/godotenv"
-)
-
-func main() {
- // Load env-file if it exists first
- if env := os.Getenv("PLUGIN_ENV_FILE"); env != "" {
- godotenv.Load(env)
- }
-
- var (
- repo = getenv("PLUGIN_REPO")
- registry = getenv("PLUGIN_REGISTRY")
- username = getenv("SERVICE_PRINCIPAL_CLIENT_ID")
- password = getenv("SERVICE_PRINCIPAL_CLIENT_SECRET")
- )
-
- // default registry value
- if registry == "" {
- registry = "azurecr.io"
- }
-
- // must use the fully qualified repo name. If the
- // repo name does not have the registry prefix we
- // should prepend.
- if !strings.HasPrefix(repo, registry) {
- repo = fmt.Sprintf("%s/%s", registry, repo)
- }
-
- os.Setenv("PLUGIN_REPO", repo)
- os.Setenv("PLUGIN_REGISTRY", registry)
- os.Setenv("DOCKER_USERNAME", username)
- os.Setenv("DOCKER_PASSWORD", password)
-
- // invoke the base docker plugin binary
- cmd := exec.Command("drone-docker")
- cmd.Stdout = os.Stdout
- cmd.Stderr = os.Stderr
- err := cmd.Run()
- if err != nil {
- os.Exit(1)
- }
-}
-
-func getenv(key ...string) (s string) {
- for _, k := range key {
- s = os.Getenv(k)
- if s != "" {
- return
- }
- }
- return
-}
diff --git a/cmd/drone-docker/main.go b/cmd/drone-docker/main.go
deleted file mode 100644
index f6448c2..0000000
--- a/cmd/drone-docker/main.go
+++ /dev/null
@@ -1,317 +0,0 @@
-package main
-
-import (
- "os"
-
- "github.com/joho/godotenv"
- "github.com/sirupsen/logrus"
- "github.com/urfave/cli"
-
- docker "github.com/drone-plugins/drone-docker"
-)
-
-var (
- version = "unknown"
-)
-
-func main() {
- // Load env-file if it exists first
- if env := os.Getenv("PLUGIN_ENV_FILE"); env != "" {
- godotenv.Load(env)
- }
-
- app := cli.NewApp()
- app.Name = "docker plugin"
- app.Usage = "docker plugin"
- app.Action = run
- app.Version = version
- app.Flags = []cli.Flag{
- cli.BoolFlag{
- Name: "dry-run",
- Usage: "dry run disables docker push",
- EnvVar: "PLUGIN_DRY_RUN",
- },
- cli.StringFlag{
- Name: "remote.url",
- Usage: "git remote url",
- EnvVar: "DRONE_REMOTE_URL",
- },
- cli.StringFlag{
- Name: "commit.sha",
- Usage: "git commit sha",
- EnvVar: "DRONE_COMMIT_SHA",
- Value: "00000000",
- },
- cli.StringFlag{
- Name: "commit.ref",
- Usage: "git commit ref",
- EnvVar: "DRONE_COMMIT_REF",
- },
- cli.StringFlag{
- Name: "daemon.mirror",
- Usage: "docker daemon registry mirror",
- EnvVar: "PLUGIN_MIRROR,DOCKER_PLUGIN_MIRROR",
- },
- cli.StringFlag{
- Name: "daemon.storage-driver",
- Usage: "docker daemon storage driver",
- EnvVar: "PLUGIN_STORAGE_DRIVER",
- },
- cli.StringFlag{
- Name: "daemon.storage-path",
- Usage: "docker daemon storage path",
- Value: "/var/lib/docker",
- EnvVar: "PLUGIN_STORAGE_PATH",
- },
- cli.StringFlag{
- Name: "daemon.bip",
- Usage: "docker daemon bride ip address",
- EnvVar: "PLUGIN_BIP",
- },
- cli.StringFlag{
- Name: "daemon.mtu",
- Usage: "docker daemon custom mtu setting",
- EnvVar: "PLUGIN_MTU",
- },
- cli.StringSliceFlag{
- Name: "daemon.dns",
- Usage: "docker daemon dns server",
- EnvVar: "PLUGIN_CUSTOM_DNS",
- },
- cli.StringSliceFlag{
- Name: "daemon.dns-search",
- Usage: "docker daemon dns search domains",
- EnvVar: "PLUGIN_CUSTOM_DNS_SEARCH",
- },
- cli.BoolFlag{
- Name: "daemon.insecure",
- Usage: "docker daemon allows insecure registries",
- EnvVar: "PLUGIN_INSECURE",
- },
- cli.BoolFlag{
- Name: "daemon.ipv6",
- Usage: "docker daemon IPv6 networking",
- EnvVar: "PLUGIN_IPV6",
- },
- cli.BoolFlag{
- Name: "daemon.experimental",
- Usage: "docker daemon Experimental mode",
- EnvVar: "PLUGIN_EXPERIMENTAL",
- },
- cli.BoolFlag{
- Name: "daemon.debug",
- Usage: "docker daemon executes in debug mode",
- EnvVar: "PLUGIN_DEBUG,DOCKER_LAUNCH_DEBUG",
- },
- cli.BoolFlag{
- Name: "daemon.off",
- Usage: "don't start the docker daemon",
- EnvVar: "PLUGIN_DAEMON_OFF",
- },
- cli.StringFlag{
- Name: "dockerfile",
- Usage: "build dockerfile",
- Value: "Dockerfile",
- EnvVar: "PLUGIN_DOCKERFILE",
- },
- cli.StringFlag{
- Name: "context",
- Usage: "build context",
- Value: ".",
- EnvVar: "PLUGIN_CONTEXT",
- },
- cli.StringSliceFlag{
- Name: "tags",
- Usage: "build tags",
- Value: &cli.StringSlice{"latest"},
- EnvVar: "PLUGIN_TAG,PLUGIN_TAGS",
- FilePath: ".tags",
- },
- cli.BoolFlag{
- Name: "tags.auto",
- Usage: "default build tags",
- EnvVar: "PLUGIN_DEFAULT_TAGS,PLUGIN_AUTO_TAG",
- },
- cli.StringFlag{
- Name: "tags.suffix",
- Usage: "default build tags with suffix",
- EnvVar: "PLUGIN_DEFAULT_SUFFIX,PLUGIN_AUTO_TAG_SUFFIX",
- },
- cli.StringSliceFlag{
- Name: "args",
- Usage: "build args",
- EnvVar: "PLUGIN_BUILD_ARGS",
- },
- cli.StringSliceFlag{
- Name: "args-from-env",
- Usage: "build args",
- EnvVar: "PLUGIN_BUILD_ARGS_FROM_ENV",
- },
- cli.BoolFlag{
- Name: "quiet",
- Usage: "quiet docker build",
- EnvVar: "PLUGIN_QUIET",
- },
- cli.StringFlag{
- Name: "target",
- Usage: "build target",
- EnvVar: "PLUGIN_TARGET",
- },
- cli.StringSliceFlag{
- Name: "cache-from",
- Usage: "images to consider as cache sources",
- EnvVar: "PLUGIN_CACHE_FROM",
- },
- cli.BoolFlag{
- Name: "squash",
- Usage: "squash the layers at build time",
- EnvVar: "PLUGIN_SQUASH",
- },
- cli.BoolTFlag{
- Name: "pull-image",
- Usage: "force pull base image at build time",
- EnvVar: "PLUGIN_PULL_IMAGE",
- },
- cli.BoolFlag{
- Name: "compress",
- Usage: "compress the build context using gzip",
- EnvVar: "PLUGIN_COMPRESS",
- },
- cli.StringFlag{
- Name: "repo",
- Usage: "docker repository",
- EnvVar: "PLUGIN_REPO",
- },
- cli.StringSliceFlag{
- Name: "custom-labels",
- Usage: "additional k=v labels",
- EnvVar: "PLUGIN_CUSTOM_LABELS",
- },
- cli.StringSliceFlag{
- Name: "label-schema",
- Usage: "label-schema labels",
- EnvVar: "PLUGIN_LABEL_SCHEMA",
- },
- cli.StringFlag{
- Name: "docker.registry",
- Usage: "docker registry",
- Value: "https://index.docker.io/v1/",
- EnvVar: "PLUGIN_REGISTRY,DOCKER_REGISTRY",
- },
- cli.StringFlag{
- Name: "docker.username",
- Usage: "docker username",
- EnvVar: "PLUGIN_USERNAME,DOCKER_USERNAME",
- },
- cli.StringFlag{
- Name: "docker.password",
- Usage: "docker password",
- EnvVar: "PLUGIN_PASSWORD,DOCKER_PASSWORD",
- },
- cli.StringFlag{
- Name: "docker.email",
- Usage: "docker email",
- EnvVar: "PLUGIN_EMAIL,DOCKER_EMAIL",
- },
- cli.StringFlag{
- Name: "docker.config",
- Usage: "docker json dockerconfig content",
- EnvVar: "PLUGIN_CONFIG,DOCKER_PLUGIN_CONFIG",
- },
- cli.BoolTFlag{
- Name: "docker.purge",
- Usage: "docker should cleanup images",
- EnvVar: "PLUGIN_PURGE",
- },
- cli.StringFlag{
- Name: "repo.branch",
- Usage: "repository default branch",
- EnvVar: "DRONE_REPO_BRANCH",
- },
- cli.BoolFlag{
- Name: "no-cache",
- Usage: "do not use cached intermediate containers",
- EnvVar: "PLUGIN_NO_CACHE",
- },
- cli.StringSliceFlag{
- Name: "add-host",
- Usage: "additional host:IP mapping",
- EnvVar: "PLUGIN_ADD_HOST",
- },
- }
-
- if err := app.Run(os.Args); err != nil {
- logrus.Fatal(err)
- }
-}
-
-func run(c *cli.Context) error {
- plugin := docker.Plugin{
- Dryrun: c.Bool("dry-run"),
- Cleanup: c.BoolT("docker.purge"),
- Login: docker.Login{
- Registry: c.String("docker.registry"),
- Username: c.String("docker.username"),
- Password: c.String("docker.password"),
- Email: c.String("docker.email"),
- Config: c.String("docker.config"),
- },
- Build: docker.Build{
- Remote: c.String("remote.url"),
- Name: c.String("commit.sha"),
- Dockerfile: c.String("dockerfile"),
- Context: c.String("context"),
- Tags: c.StringSlice("tags"),
- Args: c.StringSlice("args"),
- ArgsEnv: c.StringSlice("args-from-env"),
- Target: c.String("target"),
- Squash: c.Bool("squash"),
- Pull: c.BoolT("pull-image"),
- CacheFrom: c.StringSlice("cache-from"),
- Compress: c.Bool("compress"),
- Repo: c.String("repo"),
- Labels: c.StringSlice("custom-labels"),
- LabelSchema: c.StringSlice("label-schema"),
- NoCache: c.Bool("no-cache"),
- AddHost: c.StringSlice("add-host"),
- Quiet: c.Bool("quiet"),
- },
- Daemon: docker.Daemon{
- Registry: c.String("docker.registry"),
- Mirror: c.String("daemon.mirror"),
- StorageDriver: c.String("daemon.storage-driver"),
- StoragePath: c.String("daemon.storage-path"),
- Insecure: c.Bool("daemon.insecure"),
- Disabled: c.Bool("daemon.off"),
- IPv6: c.Bool("daemon.ipv6"),
- Debug: c.Bool("daemon.debug"),
- Bip: c.String("daemon.bip"),
- DNS: c.StringSlice("daemon.dns"),
- DNSSearch: c.StringSlice("daemon.dns-search"),
- MTU: c.String("daemon.mtu"),
- Experimental: c.Bool("daemon.experimental"),
- },
- }
-
- if c.Bool("tags.auto") {
- if docker.UseDefaultTag( // return true if tag event or default branch
- c.String("commit.ref"),
- c.String("repo.branch"),
- ) {
- tag, err := docker.DefaultTagSuffix(
- c.String("commit.ref"),
- c.String("tags.suffix"),
- )
- if err != nil {
- logrus.Printf("cannot build docker image for %s, invalid semantic version", c.String("commit.ref"))
- return err
- }
- plugin.Build.Tags = tag
- } else {
- logrus.Printf("skipping automated docker build for %s", c.String("commit.ref"))
- return nil
- }
- }
-
- return plugin.Exec()
-}
diff --git a/cmd/drone-ecr/main.go b/cmd/drone-ecr/main.go
deleted file mode 100644
index 5f1e83e..0000000
--- a/cmd/drone-ecr/main.go
+++ /dev/null
@@ -1,203 +0,0 @@
-package main
-
-import (
- "encoding/base64"
- "fmt"
- "io/ioutil"
- "log"
- "os"
- "os/exec"
- "strconv"
- "strings"
-
- "github.com/joho/godotenv"
-
- "github.com/aws/aws-sdk-go/aws"
- "github.com/aws/aws-sdk-go/aws/awserr"
- "github.com/aws/aws-sdk-go/aws/credentials/stscreds"
- "github.com/aws/aws-sdk-go/aws/session"
- "github.com/aws/aws-sdk-go/service/ecr"
-)
-
-const defaultRegion = "us-east-1"
-
-func main() {
- // Load env-file if it exists first
- if env := os.Getenv("PLUGIN_ENV_FILE"); env != "" {
- godotenv.Load(env)
- }
-
- var (
- repo = getenv("PLUGIN_REPO")
- registry = getenv("PLUGIN_REGISTRY")
- region = getenv("PLUGIN_REGION", "ECR_REGION", "AWS_REGION")
- key = getenv("PLUGIN_ACCESS_KEY", "ECR_ACCESS_KEY", "AWS_ACCESS_KEY_ID")
- secret = getenv("PLUGIN_SECRET_KEY", "ECR_SECRET_KEY", "AWS_SECRET_ACCESS_KEY")
- create = parseBoolOrDefault(false, getenv("PLUGIN_CREATE_REPOSITORY", "ECR_CREATE_REPOSITORY"))
- lifecyclePolicy = getenv("PLUGIN_LIFECYCLE_POLICY")
- repositoryPolicy = getenv("PLUGIN_REPOSITORY_POLICY")
- assumeRole = getenv("PLUGIN_ASSUME_ROLE")
- )
-
- // set the region
- if region == "" {
- region = defaultRegion
- }
-
- os.Setenv("AWS_REGION", region)
-
- if key != "" && secret != "" {
- os.Setenv("AWS_ACCESS_KEY_ID", key)
- os.Setenv("AWS_SECRET_ACCESS_KEY", secret)
- }
-
- sess, err := session.NewSession(&aws.Config{Region: ®ion})
- if err != nil {
- log.Fatal(fmt.Sprintf("error creating aws session: %v", err))
- }
-
- svc := getECRClient(sess, assumeRole)
- username, password, defaultRegistry, err := getAuthInfo(svc)
-
- if registry == "" {
- registry = defaultRegistry
- }
-
- if err != nil {
- log.Fatal(fmt.Sprintf("error getting ECR auth: %v", err))
- }
-
- if !strings.HasPrefix(repo, registry) {
- repo = fmt.Sprintf("%s/%s", registry, repo)
- }
-
- if create {
- err = ensureRepoExists(svc, trimHostname(repo, registry))
- if err != nil {
- log.Fatal(fmt.Sprintf("error creating ECR repo: %v", err))
- }
- }
-
- if lifecyclePolicy != "" {
- p, err := ioutil.ReadFile(lifecyclePolicy)
- if err != nil {
- log.Fatal(err)
- }
- if err := uploadLifeCyclePolicy(svc, string(p), trimHostname(repo, registry)); err != nil {
- log.Fatal(fmt.Sprintf("error uploading ECR lifecycle policy: %v", err))
- }
- }
-
- if repositoryPolicy != "" {
- p, err := ioutil.ReadFile(repositoryPolicy)
- if err != nil {
- log.Fatal(err)
- }
- if err := uploadRepositoryPolicy(svc, string(p), trimHostname(repo, registry)); err != nil {
- log.Fatal(fmt.Sprintf("error uploading ECR repository policy. %v", err))
- }
- }
-
- os.Setenv("PLUGIN_REPO", repo)
- os.Setenv("PLUGIN_REGISTRY", registry)
- os.Setenv("DOCKER_USERNAME", username)
- os.Setenv("DOCKER_PASSWORD", password)
-
- // invoke the base docker plugin binary
- cmd := exec.Command("drone-docker")
- cmd.Stdout = os.Stdout
- cmd.Stderr = os.Stderr
- if err = cmd.Run(); err != nil {
- os.Exit(1)
- }
-}
-
-func trimHostname(repo, registry string) string {
- repo = strings.TrimPrefix(repo, registry)
- repo = strings.TrimLeft(repo, "/")
- return repo
-}
-
-func ensureRepoExists(svc *ecr.ECR, name string) (err error) {
- input := &ecr.CreateRepositoryInput{}
- input.SetRepositoryName(name)
- _, err = svc.CreateRepository(input)
- if err != nil {
- if aerr, ok := err.(awserr.Error); ok && aerr.Code() == ecr.ErrCodeRepositoryAlreadyExistsException {
- // eat it, we skip checking for existing to save two requests
- err = nil
- }
- }
-
- return
-}
-
-func uploadLifeCyclePolicy(svc *ecr.ECR, lifecyclePolicy string, name string) (err error) {
- input := &ecr.PutLifecyclePolicyInput{}
- input.SetLifecyclePolicyText(lifecyclePolicy)
- input.SetRepositoryName(name)
- _, err = svc.PutLifecyclePolicy(input)
-
- return err
-}
-
-func uploadRepositoryPolicy(svc *ecr.ECR, repositoryPolicy string, name string) (err error) {
- input := &ecr.SetRepositoryPolicyInput{}
- input.SetPolicyText(repositoryPolicy)
- input.SetRepositoryName(name)
- _, err = svc.SetRepositoryPolicy(input)
-
- return err
-}
-
-func getAuthInfo(svc *ecr.ECR) (username, password, registry string, err error) {
- var result *ecr.GetAuthorizationTokenOutput
- var decoded []byte
-
- result, err = svc.GetAuthorizationToken(&ecr.GetAuthorizationTokenInput{})
- if err != nil {
- return
- }
-
- auth := result.AuthorizationData[0]
- token := *auth.AuthorizationToken
- decoded, err = base64.StdEncoding.DecodeString(token)
- if err != nil {
- return
- }
-
- registry = strings.TrimPrefix(*auth.ProxyEndpoint, "https://")
- creds := strings.Split(string(decoded), ":")
- username = creds[0]
- password = creds[1]
- return
-}
-
-func parseBoolOrDefault(defaultValue bool, s string) (result bool) {
- var err error
- result, err = strconv.ParseBool(s)
- if err != nil {
- result = false
- }
-
- return
-}
-
-func getenv(key ...string) (s string) {
- for _, k := range key {
- s = os.Getenv(k)
- if s != "" {
- return
- }
- }
- return
-}
-
-func getECRClient(sess *session.Session, role string) *ecr.ECR {
- if role == "" {
- return ecr.New(sess)
- }
- return ecr.New(sess, &aws.Config{
- Credentials: stscreds.NewCredentials(sess, role),
- })
-}
diff --git a/cmd/drone-ecr/main_test.go b/cmd/drone-ecr/main_test.go
deleted file mode 100644
index 5c50ba5..0000000
--- a/cmd/drone-ecr/main_test.go
+++ /dev/null
@@ -1,20 +0,0 @@
-package main
-
-import "testing"
-
-func TestTrimHostname(t *testing.T) {
- registry := "000000000000.dkr.ecr.us-east-1.amazonaws.com"
- // map full repo path to expected repo name
- repos := map[string]string{
- registry + "/repo": "repo",
- registry + "/namespace/repo": "namespace/repo",
- registry + "/namespace/namespace/repo": "namespace/namespace/repo",
- }
-
- for repo, name := range repos {
- splitName := trimHostname(repo, registry)
- if splitName != name {
- t.Errorf("%s is not equal to %s.", splitName, name)
- }
- }
-}
diff --git a/cmd/drone-gcr/main.go b/cmd/drone-gcr/main.go
deleted file mode 100644
index addddcb..0000000
--- a/cmd/drone-gcr/main.go
+++ /dev/null
@@ -1,74 +0,0 @@
-package main
-
-import (
- "encoding/base64"
- "os"
- "os/exec"
- "path"
- "strings"
-
- "github.com/joho/godotenv"
-)
-
-// gcr default username
-const username = "_json_key"
-
-func main() {
- // Load env-file if it exists first
- if env := os.Getenv("PLUGIN_ENV_FILE"); env != "" {
- godotenv.Load(env)
- }
-
- var (
- repo = getenv("PLUGIN_REPO")
- registry = getenv("PLUGIN_REGISTRY")
- password = getenv(
- "PLUGIN_JSON_KEY",
- "GCR_JSON_KEY",
- "GOOGLE_CREDENTIALS",
- "TOKEN",
- )
- )
-
- // decode the token if base64 encoded
- decoded, err := base64.StdEncoding.DecodeString(password)
- if err == nil {
- password = string(decoded)
- }
-
- // default registry value
- if registry == "" {
- registry = "gcr.io"
- }
-
- // must use the fully qualified repo name. If the
- // repo name does not have the registry prefix we
- // should prepend.
- if !strings.HasPrefix(repo, registry) {
- repo = path.Join(registry, repo)
- }
-
- os.Setenv("PLUGIN_REPO", repo)
- os.Setenv("PLUGIN_REGISTRY", registry)
- os.Setenv("DOCKER_USERNAME", username)
- os.Setenv("DOCKER_PASSWORD", password)
-
- // invoke the base docker plugin binary
- cmd := exec.Command("drone-docker")
- cmd.Stdout = os.Stdout
- cmd.Stderr = os.Stderr
- err = cmd.Run()
- if err != nil {
- os.Exit(1)
- }
-}
-
-func getenv(key ...string) (s string) {
- for _, k := range key {
- s = os.Getenv(k)
- if s != "" {
- return
- }
- }
- return
-}
diff --git a/cmd/drone-heroku/main.go b/cmd/drone-heroku/main.go
deleted file mode 100644
index 7a5ca49..0000000
--- a/cmd/drone-heroku/main.go
+++ /dev/null
@@ -1,53 +0,0 @@
-package main
-
-import (
- "os"
- "os/exec"
- "path"
-
- "github.com/joho/godotenv"
-)
-
-func main() {
- // Load env-file if it exists first
- if env := os.Getenv("PLUGIN_ENV_FILE"); env != "" {
- godotenv.Load(env)
- }
-
- var (
- registry = "registry.heroku.com"
- process = getenv("PLUGIN_PROCESS_TYPE")
- app = getenv("PLUGIN_APP")
- email = getenv("PLUGIN_EMAIL", "HEROKU_EMAIL")
- key = getenv("PLUGIN_API_KEY", "HEROKU_API_KEY")
- )
-
- if process == "" {
- process = "web"
- }
-
- os.Setenv("PLUGIN_REGISTRY", registry)
- os.Setenv("PLUGIN_REPO", path.Join(registry, app, process))
-
- os.Setenv("DOCKER_PASSWORD", key)
- os.Setenv("DOCKER_USERNAME", email)
- os.Setenv("DOCKER_EMAIL", email)
-
- cmd := exec.Command("drone-docker")
- cmd.Stdout = os.Stdout
- cmd.Stderr = os.Stderr
- err := cmd.Run()
- if err != nil {
- os.Exit(1)
- }
-}
-
-func getenv(key ...string) (s string) {
- for _, k := range key {
- s = os.Getenv(k)
- if s != "" {
- return
- }
- }
- return
-}
diff --git a/daemon_win.go b/daemon_win.go
deleted file mode 100644
index 77e0543..0000000
--- a/daemon_win.go
+++ /dev/null
@@ -1,11 +0,0 @@
-// +build windows
-
-package docker
-
-const dockerExe = "C:\\bin\\docker.exe"
-const dockerdExe = ""
-const dockerHome = "C:\\ProgramData\\docker\\"
-
-func (p Plugin) startDaemon() {
- // this is a no-op on windows
-}
diff --git a/docker.go b/docker.go
index 90301c2..47b1a86 100644
--- a/docker.go
+++ b/docker.go
@@ -39,24 +39,23 @@ type (
// Build defines Docker build parameters.
Build struct {
- Remote string // Git remote URL
- Name string // Docker build using default named tag
- Dockerfile string // Docker build Dockerfile
- Context string // Docker build context
- Tags []string // Docker build tags
- Args []string // Docker build args
- ArgsEnv []string // Docker build args from env
- Target string // Docker build target
- Squash bool // Docker build squash
- Pull bool // Docker build pull
- CacheFrom []string // Docker build cache-from
- Compress bool // Docker build compress
- Repo string // Docker build repository
- LabelSchema []string // label-schema Label map
- Labels []string // Label map
- NoCache bool // Docker build no-cache
- AddHost []string // Docker build add-host
- Quiet bool // Docker build quiet
+ Remote string // Git remote URL
+ Name string // Docker build using default named tag
+ Dockerfile string // Docker build Dockerfile
+ Context string // Docker build context
+ Tags []string // Docker build tags
+ Platforms []string // Docker build target platforms
+ Args []string // Docker build args
+ ArgsEnv []string // Docker build args from env
+ Target string // Docker build target
+ Squash bool // Docker build squash
+ Pull bool // Docker build pull
+ CacheFrom []string // Docker build cache-from
+ Compress bool // Docker build compress
+ Repo string // Docker build repository
+ NoCache bool // Docker build no-cache
+ AddHost []string // Docker build add-host
+ Quiet bool // Docker build quiet
}
// Plugin defines the Docker plugin parameters.
@@ -127,6 +126,8 @@ func (p Plugin) Exec() error {
var cmds []*exec.Cmd
cmds = append(cmds, commandVersion()) // docker version
cmds = append(cmds, commandInfo()) // docker info
+ cmds = append(cmds, commandBuilder())
+ cmds = append(cmds, commandBuildx())
// pre-pull cache images
for _, img := range p.Build.CacheFrom {
@@ -211,10 +212,20 @@ func commandInfo() *exec.Cmd {
return exec.Command(dockerExe, "info")
}
+func commandBuilder() *exec.Cmd {
+ return exec.Command(dockerExe, "buildx", "create", "--use")
+}
+
+func commandBuildx() *exec.Cmd {
+ return exec.Command(dockerExe, "buildx", "ls")
+}
+
// helper function to create the docker build command.
func commandBuild(build Build) *exec.Cmd {
args := []string{
+ "buildx",
"build",
+ "--load",
"--rm=true",
"-f", build.Dockerfile,
"-t", build.Name,
@@ -252,25 +263,8 @@ func commandBuild(build Build) *exec.Cmd {
args = append(args, "--quiet")
}
- labelSchema := []string{
- "schema-version=1.0",
- fmt.Sprintf("build-date=%s", time.Now().Format(time.RFC3339)),
- fmt.Sprintf("vcs-ref=%s", build.Name),
- fmt.Sprintf("vcs-url=%s", build.Remote),
- }
-
- if len(build.LabelSchema) > 0 {
- labelSchema = append(labelSchema, build.LabelSchema...)
- }
-
- for _, label := range labelSchema {
- args = append(args, "--label", fmt.Sprintf("org.label-schema.%s", label))
- }
-
- if len(build.Labels) > 0 {
- for _, label := range build.Labels {
- args = append(args, "--label", label)
- }
+ if len(build.Platforms) > 0 {
+ args = append(args, "--platform", strings.Join(build.Platforms[:], ","))
}
return exec.Command(dockerExe, args...)
diff --git a/docker/Dockerfile.amd64 b/docker/Dockerfile.amd64
new file mode 100644
index 0000000..849eeaa
--- /dev/null
+++ b/docker/Dockerfile.amd64
@@ -0,0 +1,26 @@
+FROM amd64/docker:20.10-dind
+
+LABEL maintainer="Robert Kaussow "
+LABEL org.opencontainers.image.authors="Robert Kaussow "
+LABEL org.opencontainers.image.title="drone-docker-buildx"
+LABEL org.opencontainers.image.url="https://github.com/thegeeklab/drone-docker-buildx"
+LABEL org.opencontainers.image.source="https://github.com/thegeeklab/drone-docker-buildx"
+LABEL org.opencontainers.image.documentation="https://github.com/thegeeklab/drone-docker-buildx"
+
+ARG BUILDX_VERSION
+
+# renovate: datasource=github-releases depName=docker/buildx
+ENV BUILDX_VERSION="${BUILDX_VERSION:-0.5.0}"
+ENV DOCKER_HOST=unix:///var/run/docker.sock
+
+RUN apk --update add --virtual .build-deps curl && \
+ mkdir -p /usr/lib/docker/cli-plugins/ && \
+ curl -SsL -o /usr/lib/docker/cli-plugins/docker-buildx "https://github.com/docker/buildx/releases/download/v${BUILDX_VERSION}/buildx-v${BUILDX_VERSION}.linux-amd64" && \
+ chmod 755 /usr/lib/docker/cli-plugins/docker-buildx && \
+ apk del .build-deps && \
+ rm -rf /var/cache/apk/* && \
+ rm -rf /tmp/*
+
+ADD release/linux/amd64/drone-docker-buildx /bin/
+
+ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "drone-docker-buildx"]
diff --git a/docker/Dockerfile.arm b/docker/Dockerfile.arm
new file mode 100644
index 0000000..849eeaa
--- /dev/null
+++ b/docker/Dockerfile.arm
@@ -0,0 +1,26 @@
+FROM amd64/docker:20.10-dind
+
+LABEL maintainer="Robert Kaussow "
+LABEL org.opencontainers.image.authors="Robert Kaussow "
+LABEL org.opencontainers.image.title="drone-docker-buildx"
+LABEL org.opencontainers.image.url="https://github.com/thegeeklab/drone-docker-buildx"
+LABEL org.opencontainers.image.source="https://github.com/thegeeklab/drone-docker-buildx"
+LABEL org.opencontainers.image.documentation="https://github.com/thegeeklab/drone-docker-buildx"
+
+ARG BUILDX_VERSION
+
+# renovate: datasource=github-releases depName=docker/buildx
+ENV BUILDX_VERSION="${BUILDX_VERSION:-0.5.0}"
+ENV DOCKER_HOST=unix:///var/run/docker.sock
+
+RUN apk --update add --virtual .build-deps curl && \
+ mkdir -p /usr/lib/docker/cli-plugins/ && \
+ curl -SsL -o /usr/lib/docker/cli-plugins/docker-buildx "https://github.com/docker/buildx/releases/download/v${BUILDX_VERSION}/buildx-v${BUILDX_VERSION}.linux-amd64" && \
+ chmod 755 /usr/lib/docker/cli-plugins/docker-buildx && \
+ apk del .build-deps && \
+ rm -rf /var/cache/apk/* && \
+ rm -rf /tmp/*
+
+ADD release/linux/amd64/drone-docker-buildx /bin/
+
+ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "drone-docker-buildx"]
diff --git a/docker/Dockerfile.arm64 b/docker/Dockerfile.arm64
new file mode 100644
index 0000000..db5e863
--- /dev/null
+++ b/docker/Dockerfile.arm64
@@ -0,0 +1,26 @@
+FROM amd664v8/docker:20.10-dind
+
+LABEL maintainer="Robert Kaussow "
+LABEL org.opencontainers.image.authors="Robert Kaussow "
+LABEL org.opencontainers.image.title="drone-docker-buildx"
+LABEL org.opencontainers.image.url="https://github.com/thegeeklab/drone-docker-buildx"
+LABEL org.opencontainers.image.source="https://github.com/thegeeklab/drone-docker-buildx"
+LABEL org.opencontainers.image.documentation="https://github.com/thegeeklab/drone-docker-buildx"
+
+ARG BUILDX_VERSION
+
+# renovate: datasource=github-releases depName=docker/buildx
+ENV BUILDX_VERSION="${BUILDX_VERSION:-0.5.0}"
+ENV DOCKER_HOST=unix:///var/run/docker.sock
+
+RUN apk --update add --virtual .build-deps curl && \
+ mkdir -p /usr/lib/docker/cli-plugins/ && \
+ curl -SsL -o /usr/lib/docker/cli-plugins/docker-buildx "https://github.com/docker/buildx/releases/download/v${BUILDX_VERSION}/buildx-v${BUILDX_VERSION}.linux-amd64" && \
+ chmod 755 /usr/lib/docker/cli-plugins/docker-buildx && \
+ apk del .build-deps && \
+ rm -rf /var/cache/apk/* && \
+ rm -rf /tmp/*
+
+ADD release/linux/amd64/drone-docker-buildx /bin/
+
+ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "drone-docker-buildx"]
diff --git a/docker/acr/Dockerfile.linux.amd64 b/docker/acr/Dockerfile.linux.amd64
deleted file mode 100644
index 7de72ed..0000000
--- a/docker/acr/Dockerfile.linux.amd64
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM plugins/docker:linux-amd64
-
-ADD release/linux/amd64/drone-acr /bin/
-ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-acr"]
diff --git a/docker/acr/Dockerfile.linux.arm b/docker/acr/Dockerfile.linux.arm
deleted file mode 100644
index c989857..0000000
--- a/docker/acr/Dockerfile.linux.arm
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM plugins/docker:linux-arm
-
-ADD release/linux/arm/drone-acr /bin/
-ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-acr"]
diff --git a/docker/acr/Dockerfile.linux.arm64 b/docker/acr/Dockerfile.linux.arm64
deleted file mode 100644
index 772022d..0000000
--- a/docker/acr/Dockerfile.linux.arm64
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM plugins/docker:linux-arm64
-
-ADD release/linux/arm64/drone-acr /bin/
-ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-acr"]
diff --git a/docker/acr/Dockerfile.windows.1803 b/docker/acr/Dockerfile.windows.1803
deleted file mode 100644
index f7b3fdd..0000000
--- a/docker/acr/Dockerfile.windows.1803
+++ /dev/null
@@ -1,10 +0,0 @@
-# escape=`
-FROM plugins/docker:windows-1803
-
-LABEL maintainer="Drone.IO Community " `
- org.label-schema.name="Drone ACR" `
- org.label-schema.vendor="Drone.IO Community" `
- org.label-schema.schema-version="1.0"
-
-ADD release/windows/amd64/drone-acr.exe C:/bin/drone-acr.exe
-ENTRYPOINT [ "C:\\bin\\drone-acr.exe" ]
diff --git a/docker/acr/Dockerfile.windows.1809 b/docker/acr/Dockerfile.windows.1809
deleted file mode 100644
index dfa264d..0000000
--- a/docker/acr/Dockerfile.windows.1809
+++ /dev/null
@@ -1,10 +0,0 @@
-# escape=`
-FROM plugins/docker:windows-1809
-
-LABEL maintainer="Drone.IO Community " `
- org.label-schema.name="Drone ACR" `
- org.label-schema.vendor="Drone.IO Community" `
- org.label-schema.schema-version="1.0"
-
-ADD release/windows/amd64/drone-acr.exe C:/bin/drone-acr.exe
-ENTRYPOINT [ "C:\\bin\\drone-acr.exe" ]
diff --git a/docker/acr/manifest.tmpl b/docker/acr/manifest.tmpl
deleted file mode 100644
index d1acb34..0000000
--- a/docker/acr/manifest.tmpl
+++ /dev/null
@@ -1,37 +0,0 @@
-image: plugins/acr:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
-{{#if build.tags}}
-tags:
-{{#each build.tags}}
- - {{this}}
-{{/each}}
-{{/if}}
-manifests:
- -
- image: plugins/acr:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-amd64
- platform:
- architecture: amd64
- os: linux
- -
- image: plugins/acr:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm64
- platform:
- architecture: arm64
- os: linux
- variant: v8
- -
- image: plugins/acr:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm
- platform:
- architecture: arm
- os: linux
- variant: v7
- -
- image: plugins/acr:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}windows-1803
- platform:
- architecture: amd64
- os: windows
- version: 1803
- -
- image: plugins/acr:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}windows-1809
- platform:
- architecture: amd64
- os: windows
- version: 1809
diff --git a/docker/docker/Dockerfile.linux.amd64 b/docker/docker/Dockerfile.linux.amd64
deleted file mode 100644
index c39c578..0000000
--- a/docker/docker/Dockerfile.linux.amd64
+++ /dev/null
@@ -1,6 +0,0 @@
-FROM docker:19.03.8-dind
-
-ENV DOCKER_HOST=unix:///var/run/docker.sock
-
-ADD release/linux/amd64/drone-docker /bin/
-ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-docker"]
diff --git a/docker/docker/Dockerfile.linux.arm b/docker/docker/Dockerfile.linux.arm
deleted file mode 100644
index 1a8d8b3..0000000
--- a/docker/docker/Dockerfile.linux.arm
+++ /dev/null
@@ -1,6 +0,0 @@
-FROM arm32v6/docker:19.03.8-dind
-
-ENV DOCKER_HOST=unix:///var/run/docker.sock
-
-ADD release/linux/arm/drone-docker /bin/
-ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-docker"]
diff --git a/docker/docker/Dockerfile.linux.arm64 b/docker/docker/Dockerfile.linux.arm64
deleted file mode 100644
index 2a70c6a..0000000
--- a/docker/docker/Dockerfile.linux.arm64
+++ /dev/null
@@ -1,6 +0,0 @@
-FROM arm64v8/docker:19.03.8-dind
-
-ENV DOCKER_HOST=unix:///var/run/docker.sock
-
-ADD release/linux/arm64/drone-docker /bin/
-ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-docker"]
diff --git a/docker/docker/Dockerfile.windows.1803 b/docker/docker/Dockerfile.windows.1803
deleted file mode 100644
index 41352d7..0000000
--- a/docker/docker/Dockerfile.windows.1803
+++ /dev/null
@@ -1,26 +0,0 @@
-# escape=`
-FROM mcr.microsoft.com/windows/servercore:1803 as download
-
-SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
-
-ENV DOCKER_VERSION 18.09.1
-
-RUN Invoke-WebRequest 'http://constexpr.org/innoextract/files/innoextract-1.6-windows.zip' -OutFile 'innoextract.zip' -UseBasicParsing ; `
- Expand-Archive innoextract.zip -DestinationPath C:\ ; `
- Remove-Item -Path innoextract.zip
-
-RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 ; `
- Invoke-WebRequest $('https://github.com/docker/toolbox/releases/download/v{0}/DockerToolbox-{0}.exe' -f $env:DOCKER_VERSION) -OutFile 'dockertoolbox.exe' -UseBasicParsing
-RUN /innoextract.exe dockertoolbox.exe
-
-FROM plugins/base:windows-1803
-
-LABEL maintainer="Drone.IO Community " `
- org.label-schema.name="Drone Docker" `
- org.label-schema.vendor="Drone.IO Community" `
- org.label-schema.schema-version="1.0"
-
-COPY --from=download /windows/system32/netapi32.dll /windows/system32/netapi32.dll
-COPY --from=download /app/docker.exe C:/bin/docker.exe
-ADD release/windows/amd64/drone-docker.exe C:/bin/drone-docker.exe
-ENTRYPOINT [ "C:\\bin\\drone-docker.exe" ]
diff --git a/docker/docker/Dockerfile.windows.1809 b/docker/docker/Dockerfile.windows.1809
deleted file mode 100644
index bffc4b4..0000000
--- a/docker/docker/Dockerfile.windows.1809
+++ /dev/null
@@ -1,27 +0,0 @@
-# escape=`
-FROM mcr.microsoft.com/windows/servercore:1809 as download
-
-SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
-
-ENV DOCKER_VERSION 18.09.1
-
-RUN Invoke-WebRequest 'http://constexpr.org/innoextract/files/innoextract-1.6-windows.zip' -OutFile 'innoextract.zip' -UseBasicParsing ; `
- Expand-Archive innoextract.zip -DestinationPath C:\ ; `
- Remove-Item -Path innoextract.zip
-
-RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 ; `
- Invoke-WebRequest $('https://github.com/docker/toolbox/releases/download/v{0}/DockerToolbox-{0}.exe' -f $env:DOCKER_VERSION) -OutFile 'dockertoolbox.exe' -UseBasicParsing
-RUN /innoextract.exe dockertoolbox.exe
-
-FROM mcr.microsoft.com/windows/nanoserver:1809
-USER ContainerAdministrator
-
-LABEL maintainer="Drone.IO Community " `
- org.label-schema.name="Drone Docker" `
- org.label-schema.vendor="Drone.IO Community" `
- org.label-schema.schema-version="1.0"
-
-COPY --from=download /windows/system32/netapi32.dll /windows/system32/netapi32.dll
-COPY --from=download /app/docker.exe C:/bin/docker.exe
-ADD release/windows/amd64/drone-docker.exe C:/bin/drone-docker.exe
-ENTRYPOINT [ "C:\\bin\\drone-docker.exe" ]
diff --git a/docker/docker/Dockerfile.windows.1903 b/docker/docker/Dockerfile.windows.1903
deleted file mode 100644
index a6eadef..0000000
--- a/docker/docker/Dockerfile.windows.1903
+++ /dev/null
@@ -1,28 +0,0 @@
-# escape=`
-FROM mcr.microsoft.com/windows/servercore:1903 as download
-
-SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
-
-ENV DOCKER_VERSION 19.03.1
-
-RUN Invoke-WebRequest 'http://constexpr.org/innoextract/files/innoextract-1.7-windows.zip' -OutFile 'innoextract.zip' -UseBasicParsing ; `
- Expand-Archive innoextract.zip -DestinationPath C:\ ; `
- Remove-Item -Path innoextract.zip
-
-RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 ; `
- Invoke-WebRequest $('https://github.com/docker/toolbox/releases/download/v{0}/DockerToolbox-{0}.exe' -f $env:DOCKER_VERSION) -OutFile 'dockertoolbox.exe' -UseBasicParsing
-RUN /innoextract.exe dockertoolbox.exe
-
-FROM mcr.microsoft.com/windows/nanoserver:1903
-USER ContainerAdministrator
-
-LABEL maintainer="Drone.IO Community " `
- org.label-schema.name="Drone Docker" `
- org.label-schema.vendor="Drone.IO Community" `
- org.label-schema.schema-version="1.0"
-
-RUN mkdir C:\bin
-COPY --from=download /windows/system32/netapi32.dll /windows/system32/netapi32.dll
-COPY --from=download /app/docker.exe C:/bin/docker.exe
-ADD release/windows/amd64/drone-docker.exe C:/bin/drone-docker.exe
-ENTRYPOINT [ "C:\\bin\\drone-docker.exe" ]
diff --git a/docker/docker/Dockerfile.windows.1909 b/docker/docker/Dockerfile.windows.1909
deleted file mode 100644
index e8dc3ae..0000000
--- a/docker/docker/Dockerfile.windows.1909
+++ /dev/null
@@ -1,28 +0,0 @@
-# escape=`
-FROM mcr.microsoft.com/windows/servercore:1909 as download
-
-SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
-
-ENV DOCKER_VERSION 19.03.1
-
-RUN Invoke-WebRequest 'http://constexpr.org/innoextract/files/innoextract-1.7-windows.zip' -OutFile 'innoextract.zip' -UseBasicParsing ; `
- Expand-Archive innoextract.zip -DestinationPath C:\ ; `
- Remove-Item -Path innoextract.zip
-
-RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 ; `
- Invoke-WebRequest $('https://github.com/docker/toolbox/releases/download/v{0}/DockerToolbox-{0}.exe' -f $env:DOCKER_VERSION) -OutFile 'dockertoolbox.exe' -UseBasicParsing
-RUN /innoextract.exe dockertoolbox.exe
-
-FROM mcr.microsoft.com/windows/nanoserver:1909
-USER ContainerAdministrator
-
-LABEL maintainer="Drone.IO Community " `
- org.label-schema.name="Drone Docker" `
- org.label-schema.vendor="Drone.IO Community" `
- org.label-schema.schema-version="1.0"
-
-RUN mkdir C:\bin
-COPY --from=download /windows/system32/netapi32.dll /windows/system32/netapi32.dll
-COPY --from=download /app/docker.exe C:/bin/docker.exe
-ADD release/windows/amd64/drone-docker.exe C:/bin/drone-docker.exe
-ENTRYPOINT [ "C:\\bin\\drone-docker.exe" ]
diff --git a/docker/docker/manifest.tmpl b/docker/docker/manifest.tmpl
deleted file mode 100644
index 4766c36..0000000
--- a/docker/docker/manifest.tmpl
+++ /dev/null
@@ -1,49 +0,0 @@
-image: plugins/docker:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
-{{#if build.tags}}
-tags:
-{{#each build.tags}}
- - {{this}}
-{{/each}}
-{{/if}}
-manifests:
- -
- image: plugins/docker:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-amd64
- platform:
- architecture: amd64
- os: linux
- -
- image: plugins/docker:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm64
- platform:
- architecture: arm64
- os: linux
- variant: v8
- -
- image: plugins/docker:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm
- platform:
- architecture: arm
- os: linux
- variant: v7
- -
- image: plugins/docker:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}windows-1803
- platform:
- architecture: amd64
- os: windows
- version: 1803
- -
- image: plugins/docker:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}windows-1809-amd64
- platform:
- architecture: amd64
- os: windows
- version: 1809
- -
- image: plugins/docker:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}windows-1903-amd64
- platform:
- architecture: amd64
- os: windows
- version: 1903
- -
- image: plugins/docker:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}windows-1909-amd64
- platform:
- architecture: amd64
- os: windows
- version: 1909
diff --git a/docker/ecr/Dockerfile.linux.amd64 b/docker/ecr/Dockerfile.linux.amd64
deleted file mode 100644
index 5f7ab8b..0000000
--- a/docker/ecr/Dockerfile.linux.amd64
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM plugins/docker:linux-amd64
-
-ADD release/linux/amd64/drone-ecr /bin/
-ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-ecr"]
diff --git a/docker/ecr/Dockerfile.linux.arm b/docker/ecr/Dockerfile.linux.arm
deleted file mode 100644
index f8dd9e3..0000000
--- a/docker/ecr/Dockerfile.linux.arm
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM plugins/docker:linux-arm
-
-ADD release/linux/arm/drone-ecr /bin/
-ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-ecr"]
diff --git a/docker/ecr/Dockerfile.linux.arm64 b/docker/ecr/Dockerfile.linux.arm64
deleted file mode 100644
index 83ed26a..0000000
--- a/docker/ecr/Dockerfile.linux.arm64
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM plugins/docker:linux-arm64
-
-ADD release/linux/arm64/drone-ecr /bin/
-ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-ecr"]
diff --git a/docker/ecr/Dockerfile.windows.1803 b/docker/ecr/Dockerfile.windows.1803
deleted file mode 100644
index 367cfb2..0000000
--- a/docker/ecr/Dockerfile.windows.1803
+++ /dev/null
@@ -1,10 +0,0 @@
-# escape=`
-FROM plugins/docker:windows-1803
-
-LABEL maintainer="Drone.IO Community " `
- org.label-schema.name="Drone ECR" `
- org.label-schema.vendor="Drone.IO Community" `
- org.label-schema.schema-version="1.0"
-
-ADD release/windows/amd64/drone-ecr.exe C:/bin/drone-ecr.exe
-ENTRYPOINT [ "C:\\bin\\drone-ecr.exe" ]
diff --git a/docker/ecr/Dockerfile.windows.1809 b/docker/ecr/Dockerfile.windows.1809
deleted file mode 100644
index 4d12228..0000000
--- a/docker/ecr/Dockerfile.windows.1809
+++ /dev/null
@@ -1,10 +0,0 @@
-# escape=`
-FROM plugins/docker:windows-1809
-
-LABEL maintainer="Drone.IO Community " `
- org.label-schema.name="Drone ECR" `
- org.label-schema.vendor="Drone.IO Community" `
- org.label-schema.schema-version="1.0"
-
-ADD release/windows/amd64/drone-ecr.exe C:/bin/drone-ecr.exe
-ENTRYPOINT [ "C:\\bin\\drone-ecr.exe" ]
diff --git a/docker/ecr/manifest.tmpl b/docker/ecr/manifest.tmpl
deleted file mode 100644
index 8af16c7..0000000
--- a/docker/ecr/manifest.tmpl
+++ /dev/null
@@ -1,37 +0,0 @@
-image: plugins/ecr:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
-{{#if build.tags}}
-tags:
-{{#each build.tags}}
- - {{this}}
-{{/each}}
-{{/if}}
-manifests:
- -
- image: plugins/ecr:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-amd64
- platform:
- architecture: amd64
- os: linux
- -
- image: plugins/ecr:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm64
- platform:
- architecture: arm64
- os: linux
- variant: v8
- -
- image: plugins/ecr:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm
- platform:
- architecture: arm
- os: linux
- variant: v7
- -
- image: plugins/ecr:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}windows-1803
- platform:
- architecture: amd64
- os: windows
- version: 1803
- -
- image: plugins/ecr:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}windows-1809
- platform:
- architecture: amd64
- os: windows
- version: 1809
diff --git a/docker/gcr/Dockerfile.linux.amd64 b/docker/gcr/Dockerfile.linux.amd64
deleted file mode 100644
index b756e04..0000000
--- a/docker/gcr/Dockerfile.linux.amd64
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM plugins/docker:linux-amd64
-
-ADD release/linux/amd64/drone-gcr /bin/
-ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-gcr"]
diff --git a/docker/gcr/Dockerfile.linux.arm b/docker/gcr/Dockerfile.linux.arm
deleted file mode 100644
index 718ce0f..0000000
--- a/docker/gcr/Dockerfile.linux.arm
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM plugins/docker:linux-arm
-
-ADD release/linux/arm/drone-gcr /bin/
-ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-gcr"]
diff --git a/docker/gcr/Dockerfile.linux.arm64 b/docker/gcr/Dockerfile.linux.arm64
deleted file mode 100644
index 396e373..0000000
--- a/docker/gcr/Dockerfile.linux.arm64
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM plugins/docker:linux-arm64
-
-ADD release/linux/arm64/drone-gcr /bin/
-ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-gcr"]
diff --git a/docker/gcr/Dockerfile.windows.1803 b/docker/gcr/Dockerfile.windows.1803
deleted file mode 100644
index 76bac6f..0000000
--- a/docker/gcr/Dockerfile.windows.1803
+++ /dev/null
@@ -1,10 +0,0 @@
-# escape=`
-FROM plugins/docker:windows-1803
-
-LABEL maintainer="Drone.IO Community " `
- org.label-schema.name="Drone GCR" `
- org.label-schema.vendor="Drone.IO Community" `
- org.label-schema.schema-version="1.0"
-
-ADD release/windows/amd64/drone-gcr.exe C:/bin/drone-gcr.exe
-ENTRYPOINT [ "C:\\bin\\drone-gcr.exe" ]
diff --git a/docker/gcr/Dockerfile.windows.1809 b/docker/gcr/Dockerfile.windows.1809
deleted file mode 100644
index 1b1134b..0000000
--- a/docker/gcr/Dockerfile.windows.1809
+++ /dev/null
@@ -1,10 +0,0 @@
-# escape=`
-FROM plugins/docker:windows-1809
-
-LABEL maintainer="Drone.IO Community " `
- org.label-schema.name="Drone GCR" `
- org.label-schema.vendor="Drone.IO Community" `
- org.label-schema.schema-version="1.0"
-
-ADD release/windows/amd64/drone-gcr.exe C:/bin/drone-gcr.exe
-ENTRYPOINT [ "C:\\bin\\drone-gcr.exe" ]
diff --git a/docker/gcr/manifest.tmpl b/docker/gcr/manifest.tmpl
deleted file mode 100644
index 8b9231a..0000000
--- a/docker/gcr/manifest.tmpl
+++ /dev/null
@@ -1,37 +0,0 @@
-image: plugins/gcr:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
-{{#if build.tags}}
-tags:
-{{#each build.tags}}
- - {{this}}
-{{/each}}
-{{/if}}
-manifests:
- -
- image: plugins/gcr:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-amd64
- platform:
- architecture: amd64
- os: linux
- -
- image: plugins/gcr:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm64
- platform:
- architecture: arm64
- os: linux
- variant: v8
- -
- image: plugins/gcr:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm
- platform:
- architecture: arm
- os: linux
- variant: v7
- -
- image: plugins/gcr:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}windows-1803
- platform:
- architecture: amd64
- os: windows
- version: 1803
- -
- image: plugins/gcr:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}windows-1809
- platform:
- architecture: amd64
- os: windows
- version: 1809
diff --git a/docker/heroku/Dockerfile.linux.amd64 b/docker/heroku/Dockerfile.linux.amd64
deleted file mode 100644
index e2e7e52..0000000
--- a/docker/heroku/Dockerfile.linux.amd64
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM plugins/docker:linux-amd64
-
-ADD release/linux/amd64/drone-heroku /bin/
-ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-heroku"]
diff --git a/docker/heroku/Dockerfile.linux.arm b/docker/heroku/Dockerfile.linux.arm
deleted file mode 100644
index b233cca..0000000
--- a/docker/heroku/Dockerfile.linux.arm
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM plugins/docker:linux-arm
-
-ADD release/linux/arm/drone-heroku /bin/
-ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-heroku"]
diff --git a/docker/heroku/Dockerfile.linux.arm64 b/docker/heroku/Dockerfile.linux.arm64
deleted file mode 100644
index e49f7c6..0000000
--- a/docker/heroku/Dockerfile.linux.arm64
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM plugins/docker:linux-arm64
-
-ADD release/linux/arm64/drone-heroku /bin/
-ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-heroku"]
diff --git a/docker/heroku/manifest.tmpl b/docker/heroku/manifest.tmpl
deleted file mode 100644
index 28ed9a5..0000000
--- a/docker/heroku/manifest.tmpl
+++ /dev/null
@@ -1,25 +0,0 @@
-image: plugins/heroku:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
-{{#if build.tags}}
-tags:
-{{#each build.tags}}
- - {{this}}
-{{/each}}
-{{/if}}
-manifests:
- -
- image: plugins/heroku:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-amd64
- platform:
- architecture: amd64
- os: linux
- -
- image: plugins/heroku:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm64
- platform:
- architecture: arm64
- os: linux
- variant: v8
- -
- image: plugins/heroku:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm
- platform:
- architecture: arm
- os: linux
- variant: v7
diff --git a/go.mod b/go.mod
index 36080ec..2680ea2 100644
--- a/go.mod
+++ b/go.mod
@@ -2,11 +2,16 @@ module github.com/drone-plugins/drone-docker
require (
github.com/aws/aws-sdk-go v1.26.7
- github.com/coreos/go-semver v0.2.0
+ github.com/coreos/go-semver v0.3.0
+ github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect
github.com/joho/godotenv v1.3.0
- github.com/sirupsen/logrus v1.3.0
- github.com/urfave/cli v1.22.2
- golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e // indirect
+ github.com/konsorten/go-windows-terminal-sequences v1.0.3 // indirect
+ github.com/russross/blackfriday/v2 v2.1.0 // indirect
+ github.com/sirupsen/logrus v1.7.0
+ github.com/stretchr/objx v0.1.1 // indirect
+ github.com/urfave/cli v1.22.5
+ golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad // indirect
+ golang.org/x/sys v0.0.0-20210110051926-789bb1bd4061 // indirect
golang.org/x/text v0.3.0 // indirect
)
diff --git a/go.sum b/go.sum
index e684144..f442229 100644
--- a/go.sum
+++ b/go.sum
@@ -3,8 +3,12 @@ github.com/aws/aws-sdk-go v1.26.7 h1:ObjEnmzvSdYy8KVd3me7v/UMyCn81inLy2SyoIPoBkg
github.com/aws/aws-sdk-go v1.26.7/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY=
github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
+github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=
+github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
+github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM=
+github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM=
@@ -13,14 +17,19 @@ github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
+github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
+github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
github.com/sirupsen/logrus v1.3.0 h1:hI/7Q+DtNZ2kINb6qt/lS+IyXnHQe9e90POfeewL/ME=
github.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
+github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM=
+github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
@@ -28,12 +37,22 @@ github.com/urfave/cli v1.20.0 h1:fDqGv3UG/4jbVl/QkFwEdddtEDjh/5Ov6X+0B/3bPaw=
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
github.com/urfave/cli v1.22.2 h1:gsqYFH8bb9ekPA12kRo0hfjngWQjkJPlN9R0N78BoUo=
github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
+github.com/urfave/cli v1.22.5 h1:lNq9sAHXK2qfdI8W+GRItjCEkI+2oR4d+MEHy1CKXoU=
+github.com/urfave/cli v1.22.5/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793 h1:u+LnwYTOOW7Ukr/fppxEb1Nwz0AtPflrblfvUudpo+I=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e h1:bRhVy7zSSasaqNksaRZiA5EEI+Ei4I1nO5Jh72wfHlg=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33 h1:I6FyU15t786LL7oL/hn43zqTuEGr4PN7F4XJ1p4E3Y8=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210110051926-789bb1bd4061 h1:DQmQoKxQWtyybCtX/3dIuDBcAhFszqq8YiNeS6sNu1c=
+golang.org/x/sys v0.0.0-20210110051926-789bb1bd4061/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
diff --git a/pipeline.libsonnet b/pipeline.libsonnet
deleted file mode 100644
index 4d44a41..0000000
--- a/pipeline.libsonnet
+++ /dev/null
@@ -1,206 +0,0 @@
-local windows_pipe = '\\\\\\\\.\\\\pipe\\\\docker_engine';
-local windows_pipe_volume = 'docker_pipe';
-local test_pipeline_name = 'testing';
-
-local windows(os) = os == 'windows';
-
-local golang_image(os, version) =
- 'golang:' + '1.11' + if windows(os) then '-windowsservercore-' + version else '';
-
-{
- test(os='linux', arch='amd64', version='')::
- local is_windows = windows(os);
- local golang = golang_image(os, version);
- local volumes = if is_windows then [{name: 'gopath', path: 'C:\\\\gopath'}] else [{name: 'gopath', path: '/go',}];
- {
- kind: 'pipeline',
- name: test_pipeline_name,
- platform: {
- os: os,
- arch: arch,
- version: if std.length(version) > 0 then version,
- },
- steps: [
- {
- name: 'vet',
- image: golang,
- pull: 'always',
- environment: {
- GO111MODULE: 'on',
- },
- commands: [
- 'go vet ./...',
- ],
- volumes: volumes,
- },
- {
- name: 'test',
- image: golang,
- pull: 'always',
- environment: {
- GO111MODULE: 'on',
- },
- commands: [
- 'go test -cover ./...',
- ],
- volumes: volumes,
- },
- ],
- trigger: {
- ref: [
- 'refs/heads/master',
- 'refs/tags/**',
- 'refs/pull/**',
- ],
- },
- volumes: [{name: 'gopath', temp: {}}]
- },
-
- build(name, os='linux', arch='amd64', version='')::
- local is_windows = windows(os);
- local tag = if is_windows then os + '-' + version else os + '-' + arch;
- local file_suffix = std.strReplace(tag, '-', '.');
- local volumes = if is_windows then [{ name: windows_pipe_volume, path: windows_pipe }] else [];
- local golang = golang_image(os, version);
- local plugin_repo = 'plugins/' + name;
- local extension = if is_windows then '.exe' else '';
- local depends_on = if name == 'docker' then [test_pipeline_name] else [tag + '-docker'];
- {
- kind: 'pipeline',
- name: tag + '-' + name,
- platform: {
- os: os,
- arch: arch,
- version: if std.length(version) > 0 then version,
- },
- steps: [
- {
- name: 'build-push',
- image: golang,
- pull: 'always',
- environment: {
- CGO_ENABLED: '0',
- GO111MODULE: 'on',
- },
- commands: [
- 'go build -v -ldflags "-X main.version=${DRONE_COMMIT_SHA:0:8}" -a -tags netgo -o release/' + os + '/' + arch + '/drone-' + name + extension + ' ./cmd/drone-' + name,
- ],
- when: {
- event: {
- exclude: ['tag'],
- },
- },
- },
- {
- name: 'build-tag',
- image: golang,
- pull: 'always',
- environment: {
- CGO_ENABLED: '0',
- GO111MODULE: 'on',
- },
- commands: [
- 'go build -v -ldflags "-X main.version=${DRONE_TAG##v}" -a -tags netgo -o release/' + os + '/' + arch + '/drone-' + name + extension + ' ./cmd/drone-' + name,
- ],
- when: {
- event: ['tag'],
- },
- },
- if name == "docker" then {
- name: 'executable',
- image: golang,
- pull: 'always',
- commands: [
- './release/' + os + '/' + arch + '/drone-' + name + extension + ' --help',
- ],
- },
- {
- name: 'dryrun',
- image: 'plugins/docker:' + tag,
- pull: 'always',
- settings: {
- dry_run: true,
- tags: tag,
- dockerfile: 'docker/'+ name +'/Dockerfile.' + file_suffix,
- daemon_off: if is_windows then 'true' else 'false',
- repo: plugin_repo,
- username: { from_secret: 'docker_username' },
- password: { from_secret: 'docker_password' },
- },
- volumes: if std.length(volumes) > 0 then volumes,
- when: {
- event: ['pull_request'],
- },
- },
- {
- name: 'publish',
- image: 'plugins/docker:' + tag,
- pull: 'always',
- settings: {
- auto_tag: true,
- auto_tag_suffix: tag,
- daemon_off: if is_windows then 'true' else 'false',
- dockerfile: 'docker/' + name + '/Dockerfile.' + file_suffix,
- repo: plugin_repo,
- username: { from_secret: 'docker_username' },
- password: { from_secret: 'docker_password' },
- },
- volumes: if std.length(volumes) > 0 then volumes,
- when: {
- event: {
- exclude: ['pull_request'],
- },
- },
- },
- ],
- trigger: {
- ref: [
- 'refs/heads/master',
- 'refs/tags/**',
- 'refs/pull/**',
- ],
- },
- depends_on: depends_on,
- volumes: if is_windows then [{ name: windows_pipe_volume, host: { path: windows_pipe } }],
- },
-
- notifications(name, os='linux', arch='amd64', version='', depends_on=[])::
- {
- kind: 'pipeline',
- name: 'notifications-' + name,
- platform: {
- os: os,
- arch: arch,
- version: if std.length(version) > 0 then version,
- },
- steps: [
- {
- name: 'manifest',
- image: 'plugins/manifest',
- pull: 'always',
- settings: {
- username: { from_secret: 'docker_username' },
- password: { from_secret: 'docker_password' },
- spec: 'docker/' + name + '/manifest.tmpl',
- ignore_missing: true,
- auto_tag: true,
- },
- },
- {
- name: 'microbadger',
- image: 'plugins/webhook',
- pull: 'always',
- settings: {
- urls: { from_secret: 'microbadger_' + name },
- },
- },
- ],
- depends_on: [x + '-' + name for x in depends_on],
- trigger: {
- ref: [
- 'refs/heads/master',
- 'refs/tags/**',
- ],
- },
- },
-}
diff --git a/renovate.json b/renovate.json
new file mode 100644
index 0000000..bf73d46
--- /dev/null
+++ b/renovate.json
@@ -0,0 +1,4 @@
+{
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
+ "extends": ["github>thegeeklab/renovate-presets"]
+}