Initial plugin support
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2023-02-14 18:35:06 +01:00
parent f6d94e4ab8
commit 1c1ebd98ce
3 changed files with 81 additions and 1009 deletions

View File

@@ -1,236 +1,5 @@
---
kind: pipeline
name: testing
type: vm
pool:
use: ubuntu
platform:
os: linux
arch: amd64
steps:
- name: vet
image: golang:1.17
commands:
- go vet ./...
environment:
volumes:
- name: gopath
path: /go
- name: test
image: golang:1.17
commands:
- go test -cover ./...
environment:
volumes:
- name: gopath
path: /go
volumes:
- name: gopath
temp: {}
trigger:
ref:
- refs/heads/master
- "refs/tags/**"
- "refs/pull/**"
---
kind: pipeline
type: vm
name: windows-1809
pool:
use: windows
platform:
os: windows
arch: amd64
steps:
- name: go build
image: golang:1.17
environment:
CGO_ENABLED: 0
commands:
- go build -o release/windows/amd64/drone-docker.exe ./cmd/drone-docker
- go build -o release/windows/amd64/drone-ecr.exe ./cmd/drone-ecr
- go build -o release/windows/amd64/drone-gcr.exe ./cmd/drone-gcr
- go build -o release/windows/amd64/drone-acr.exe ./cmd/drone-acr
- name: build docker plugin
image: plugins/docker@sha256:f0233d950ae87ee6cb5500b2d5497fe02aa338201c0bdce2619f443fd174cfa4
settings:
dockerfile: docker/docker/Dockerfile.windows.amd64.1809
repo: plugins/docker
username:
from_secret: docker_username
password:
from_secret: docker_password
auto_tag: true
daemon_off: true
auto_tag_suffix: windows-1809-amd64
purge: false
when:
event: [push, tag]
- name: build ecr plugin
image: plugins/docker:windows-1809-amd64
pull: never
settings:
dockerfile: docker/ecr/Dockerfile.windows.amd64.1809
repo: plugins/ecr
username:
from_secret: docker_username
password:
from_secret: docker_password
auto_tag: true
auto_tag_suffix: windows-1809-amd64
purge: false
when:
event: [push, tag]
- name: build gcr plugin
image: plugins/docker:windows-1809-amd64
pull: never
settings:
dockerfile: docker/gcr/Dockerfile.windows.amd64.1809
repo: plugins/gcr
username:
from_secret: docker_username
password:
from_secret: docker_password
auto_tag: true
auto_tag_suffix: windows-1809-amd64
purge: false
when:
event: [push, tag]
- name: build acr plugin
image: plugins/docker:windows-1809-amd64
pull: never
settings:
dockerfile: docker/acr/Dockerfile.windows.amd64.1809
repo: plugins/acr
username:
from_secret: docker_username
password:
from_secret: docker_password
auto_tag: true
auto_tag_suffix: windows-1809-amd64
purge: false
when:
event: [push, tag]
depends_on:
- testing
trigger:
ref:
- refs/heads/master
- refs/tags/*
- "refs/pull/**"
---
kind: pipeline
type: vm
name: windows-ltsc2022
pool:
use: windows-2022
platform:
os: windows
steps:
- name: go build
image: golang:1.17
environment:
CGO_ENABLED: 0
commands:
- go build -o release/windows/amd64/drone-docker.exe ./cmd/drone-docker
- go build -o release/windows/amd64/drone-ecr.exe ./cmd/drone-ecr
- go build -o release/windows/amd64/drone-gcr.exe ./cmd/drone-gcr
- go build -o release/windows/amd64/drone-acr.exe ./cmd/drone-acr
- name: build docker plugin
image: plugins/docker
settings:
dockerfile: docker/docker/Dockerfile.windows.amd64.ltsc2022
repo: plugins/docker
username:
from_secret: docker_username
password:
from_secret: docker_password
auto_tag: true
auto_tag_suffix: windows-ltsc2022-amd64
purge: false
when:
event: [push, tag]
- name: build ecr plugin
image: plugins/docker
settings:
dockerfile: docker/ecr/Dockerfile.windows.amd64.ltsc2022
repo: plugins/ecr
username:
from_secret: docker_username
password:
from_secret: docker_password
auto_tag: true
auto_tag_suffix: windows-ltsc2022-amd64
purge: false
when:
event: [push, tag]
- name: build gcr plugin
image: plugins/docker
settings:
dockerfile: docker/gcr/Dockerfile.windows.amd64.ltsc2022
repo: plugins/gcr
username:
from_secret: docker_username
password:
from_secret: docker_password
auto_tag: true
auto_tag_suffix: windows-ltsc2022-amd64
purge: false
when:
event: [push, tag]
- name: build acr plugin
image: plugins/docker
settings:
dockerfile: docker/acr/Dockerfile.windows.amd64.ltsc2022
repo: plugins/acr
username:
from_secret: docker_username
password:
from_secret: docker_password
auto_tag: true
auto_tag_suffix: windows-ltsc2022-amd64
purge: false
when:
event: [push, tag]
depends_on:
- testing
trigger:
ref:
- refs/heads/master
- refs/tags/*
- "refs/pull/**"
---
kind: pipeline
name: linux-amd64-docker
type: vm
pool:
use: ubuntu
platform:
os: linux
arch: amd64
name: default
steps:
- name: build-push
@@ -262,733 +31,13 @@ steps:
- name: publish
image: plugins/docker:18
settings:
auto_tag: true
auto_tag_suffix: linux-amd64
daemon_off: false
dockerfile: docker/docker/Dockerfile.linux.amd64
password:
from_secret: docker_password
repo: plugins/docker
username:
from_secret: docker_username
when:
event:
exclude:
- pull_request
trigger:
ref:
- refs/heads/master
- "refs/tags/**"
- "refs/pull/**"
depends_on:
- testing
---
kind: pipeline
name: linux-arm64-docker
type: vm
pool:
use: ubuntu_arm64
platform:
os: linux
arch: arm64
steps:
- name: build-push
image: golang:1.17
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
when:
event:
exclude:
- tag
- name: build-tag
image: golang:1.17
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
when:
event:
- tag
- name: executable
image: golang:1.17
commands:
- ./release/linux/arm64/drone-docker --help
- name: publish
image: plugins/docker:18
settings:
auto_tag: true
auto_tag_suffix: linux-arm64
daemon_off: false
dockerfile: docker/docker/Dockerfile.linux.arm64
from_secret: repo_user
password:
from_secret: docker_password
repo: plugins/docker
username:
from_secret: docker_username
from_secret: repo_pass
repo: git.ivasoft.cz/sw/drone-docker
when:
event:
exclude:
- pull_request
trigger:
ref:
- refs/heads/master
- "refs/tags/**"
- "refs/pull/**"
depends_on:
- testing
---
kind: pipeline
name: notifications-docker
type: vm
pool:
use: ubuntu
platform:
os: linux
arch: amd64
steps:
- name: manifest
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
trigger:
ref:
- refs/heads/master
- "refs/tags/**"
depends_on:
- windows-1809
- windows-ltsc2022
- linux-amd64-docker
- linux-arm64-docker
---
kind: pipeline
name: linux-amd64-gcr
type: vm
pool:
use: ubuntu
platform:
os: linux
arch: amd64
steps:
- name: build-push
image: golang:1.17
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
when:
event:
exclude:
- tag
- name: build-tag
image: golang:1.17
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
when:
event:
- tag
- name: publish
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
type: vm
pool:
use: ubuntu_arm64
platform:
os: linux
arch: arm64
steps:
- name: build-push
image: golang:1.17
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
when:
event:
exclude:
- tag
- name: build-tag
image: golang:1.17
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
when:
event:
- tag
- name: publish
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: notifications-gcr
type: vm
pool:
use: ubuntu
platform:
os: linux
arch: amd64
steps:
- name: manifest
image: plugins/manifest
settings:
auto_tag: true
ignore_missing: true
password:
from_secret: docker_password
spec: docker/gcr/manifest.tmpl
username:
from_secret: docker_username
trigger:
ref:
- refs/heads/master
- "refs/tags/**"
depends_on:
- windows-1809
- windows-ltsc2022
- linux-amd64-gcr
- linux-arm64-gcr
---
kind: pipeline
name: linux-amd64-ecr
type: vm
pool:
use: ubuntu
platform:
os: linux
arch: amd64
steps:
- name: build-push
image: golang:1.17
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
when:
event:
exclude:
- tag
- name: build-tag
image: golang:1.17
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
when:
event:
- tag
- name: publish
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
type: vm
pool:
use: ubuntu_arm64
platform:
os: linux
arch: arm64
steps:
- name: build-push
image: golang:1.17
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
when:
event:
exclude:
- tag
- name: build-tag
image: golang:1.17
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
when:
event:
- tag
- name: publish
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: notifications-ecr
type: vm
pool:
use: ubuntu
platform:
os: linux
arch: amd64
steps:
- name: manifest
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
trigger:
ref:
- refs/heads/master
- "refs/tags/**"
depends_on:
- windows-1809
- windows-ltsc2022
- linux-amd64-ecr
- linux-arm64-ecr
---
kind: pipeline
name: linux-amd64-heroku
type: vm
pool:
use: ubuntu
platform:
os: linux
arch: amd64
steps:
- name: build-push
image: golang:1.17
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
when:
event:
exclude:
- tag
- name: build-tag
image: golang:1.17
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
when:
event:
- tag
- name: publish
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
type: vm
pool:
use: ubuntu_arm64
platform:
os: linux
arch: arm64
steps:
- name: build-push
image: golang:1.17
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
when:
event:
exclude:
- tag
- name: build-tag
image: golang:1.17
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
when:
event:
- tag
- name: publish
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: notifications-heroku
type: vm
pool:
use: ubuntu
platform:
os: linux
arch: amd64
steps:
- name: manifest
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
trigger:
ref:
- refs/heads/master
- "refs/tags/**"
depends_on:
- linux-amd64-heroku
- linux-arm64-heroku
---
kind: pipeline
name: linux-amd64-acr
type: vm
pool:
use: ubuntu
platform:
os: linux
arch: amd64
steps:
- name: build-push
image: golang:1.17
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
when:
event:
exclude:
- tag
- name: build-tag
image: golang:1.17
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
when:
event:
- tag
- name: publish
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
type: vm
pool:
use: ubuntu_arm64
platform:
os: linux
arch: arm64
steps:
- name: build-push
image: golang:1.17
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
when:
event:
exclude:
- tag
- name: build-tag
image: golang:1.17
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
when:
event:
- tag
- name: publish
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: notifications-acr
type: vm
pool:
use: ubuntu
platform:
os: linux
arch: amd64
steps:
- name: manifest
image: plugins/manifest
settings:
ignore_missing: true
password:
from_secret: docker_password
spec: docker/acr/manifest.tmpl
username:
from_secret: docker_username
trigger:
ref:
- refs/heads/master
- "refs/tags/**"
depends_on:
- windows-1809
- windows-ltsc2022
- linux-amd64-acr
- linux-arm64-acr
- pull_request

View File

@@ -299,31 +299,33 @@ func run(c *cli.Context) error {
},
CardPath: c.String("drone-card-path"),
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"),
AutoLabel: c.BoolT("auto-label"),
Link: c.String("link"),
NoCache: c.Bool("no-cache"),
Secret: c.String("secret"),
SecretEnvs: c.StringSlice("secrets-from-env"),
SecretFiles: c.StringSlice("secrets-from-file"),
AddHost: c.StringSlice("add-host"),
Quiet: c.Bool("quiet"),
Platform: c.String("platform"),
SSHAgentKey: c.String("ssh-agent-key"),
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"),
AutoLabel: c.BoolT("auto-label"),
Link: c.String("link"),
NoCache: c.Bool("no-cache"),
Secret: c.String("secret"),
SecretEnvs: c.StringSlice("secrets-from-env"),
SecretFiles: c.StringSlice("secrets-from-file"),
AddHost: c.StringSlice("add-host"),
Quiet: c.Bool("quiet"),
Platform: c.String("platform"),
SSHAgentKey: c.String("ssh-agent-key"),
IsPlugin: c.Bool("is-plugin"),
PluginConfig: c.String("plugin-config"),
},
Daemon: docker.Daemon{
Registry: c.String("docker.registry"),

View File

@@ -39,32 +39,34 @@ 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
AutoLabel bool // auto-label bool
Labels []string // Label map
Link string // Git repo link
NoCache bool // Docker build no-cache
Secret string // secret keypair
SecretEnvs []string // Docker build secrets with env var as source
SecretFiles []string // Docker build secrets with file as source
AddHost []string // Docker build add-host
Quiet bool // Docker build quiet
Platform string // Docker build platform
SSHAgentKey string // Docker build ssh agent key
SSHKeyPath string // Docker build ssh key path
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
AutoLabel bool // auto-label bool
Labels []string // Label map
Link string // Git repo link
NoCache bool // Docker build no-cache
Secret string // secret keypair
SecretEnvs []string // Docker build secrets with env var as source
SecretFiles []string // Docker build secrets with file as source
AddHost []string // Docker build add-host
Quiet bool // Docker build quiet
Platform string // Docker build platform
SSHAgentKey string // Docker build ssh agent key
SSHKeyPath string // Docker build ssh key path
IsPlugin bool // Build docker plugin instead of plain image
PluginConfig string // Plugin config file path, defaults to config.json
}
// Plugin defines the Docker plugin parameters.
@@ -192,8 +194,23 @@ func (p Plugin) Exec() error {
cmds = append(cmds, commandBuild(p.Build)) // docker build
if p.Build.IsPlugin {
cmds = append(cmds, exec.Command("mkdir", "plugin/rootfs"))
cmds = append(cmds, exec.Command(dockerExe, "save", "-o", "tmp.tar", p.Build.Name))
cmds = append(cmds, exec.Command(dockerExe, "image", "rm", p.Build.Name))
cmds = append(cmds, exec.Command("tar", "x", "-C", "plugin/rootfs", "-f", "tmp.tar"))
var pluginConfig string = p.Build.PluginConfig
if len(pluginConfig) == 0 {
pluginConfig = "config.json"
}
cmds = append(cmds, exec.Command("cp", pluginConfig, "plugin/config.json"))
cmds = append(cmds, exec.Command(dockerExe, "plugin", "create", p.Build.Repo, "plugin"))
}
for _, tag := range p.Build.Tags {
cmds = append(cmds, commandTag(p.Build, tag)) // docker tag
if !p.Build.IsPlugin {
cmds = append(cmds, commandTag(p.Build, tag)) // docker tag
}
if !p.Dryrun {
cmds = append(cmds, commandPush(p.Build, tag)) // docker push
@@ -459,7 +476,11 @@ func commandTag(build Build, tag string) *exec.Cmd {
// helper function to create the docker push command.
func commandPush(build Build, tag string) *exec.Cmd {
target := fmt.Sprintf("%s:%s", build.Repo, tag)
return exec.Command(dockerExe, "push", target)
if build.IsPlugin {
return exec.Command(dockerExe, "plugin", "push", target)
} else {
return exec.Command(dockerExe, "push", target)
}
}
// helper function to create the docker daemon command.