Getting Rancher plugin to conform to the current drone-plugins conventions

This commit is contained in:
Joachim Hill-Grannec
2017-09-01 11:14:58 -04:00
parent 512145144d
commit 2fc4d2010d
6 changed files with 147 additions and 29 deletions
+79 -18
View File
@@ -2,32 +2,93 @@ workspace:
base: /go
path: src/github.com/josmo/drone-rancher
pipeline:
build:
image: golang:1.6
environment:
- CGO_ENABLED=0
test:
image: golang:1.9
commands:
- go vet
- go test -cover -coverprofile=coverage.out
- go build -ldflags "-s -w -X main.build=$DRONE_BUILD_NUMBER" -a -tags netgo
publish:
build_linux_amd64:
image: golang:1.9
group: build
environment:
- GOOS=linux
- GOARCH=amd64
- CGO_ENABLED=0
commands:
- go build -v -ldflags "-X main.build=${DRONE_BUILD_NUMBER}" -a -o release/linux/amd64/drone-rancher
build_linux_arm64:
image: golang:1.9
group: build
environment:
- GOOS=linux
- GOARCH=arm64
- CGO_ENABLED=0
commands:
- go build -v -ldflags "-X main.build=${DRONE_BUILD_NUMBER}" -a -o release/linux/arm64/drone-rancher
build_linux_arm:
image: golang:1.9
group: build
environment:
- GOOS=linux
- GOARCH=arm
- CGO_ENABLED=0
- GOARM=7
commands:
- go build -v -ldflags "-X main.build=${DRONE_BUILD_NUMBER}" -a -o release/linux/arm/drone-rancher
# build_windows_amd64:
# image: golang:1.9-nanoserver
# group: build
# environment:
# - GOOS=windows
# - GOARCH=amd64
# - CGO_ENABLED=0
# commands:
# - go build -v -ldflags "-X main.build=${DRONE_BUILD_NUMBER}" -a -o release/windows/amd64/drone-webhook
publish_linux_amd64:
image: plugins/docker
username: josmo
secrets: [ docker_password ]
repo: peloton/drone-rancher
tag:
- ${DRONE_BUILD_NUMBER}
- latest
tags: [ latest, 1.0.0, 1.0, 1 ]
secrets: [ docker_password ]
dockerfile: Dockerfile
when:
branch: master
event: push
plugin:
name: Rancher
desc: Deploy or update a project on Rancher
type: deploy
image: peloton/rancher
labels:
- rancher
- docker
publish_linux_arm64:
image: plugins/docker
username: josmo
repo: peloton/drone-rancher
tags: [ linux-arm64 ]
secrets: [ docker_password ]
dockerfile: Dockerfile.arm64
when:
branch: master
event: push
publish_linux_arm:
image: plugins/docker
username: josmo
repo: peloton/drone-rancher
tags: [ linux-arm ]
secrets: [ docker_password ]
dockerfile: Dockerfile.arm
when:
branch: master
event: push
# publish_windows_amd64:
# image: plugins/docker
# username: josmo
# repo: peloton/drone-rancher
# tags: [ windows-amd64 ]
# secrets: [ docker_password ]
# dockerfile: Dockerfile.windows
# when:
# branch: master
# event: push
+14 -9
View File
@@ -1,11 +1,16 @@
# Docker image for the Drone build runner
#
# CGO_ENABLED=0 go build -a -tags netgo
# docker build --rm=true -t plugins/drone-rancher .
FROM alpine:3.6 as alpine
RUN apk add -U --no-cache ca-certificates
FROM gliderlabs/alpine:3.2
RUN apk add --update \
ca-certificates
ADD drone-rancher /bin/
FROM scratch
ENV GODEBUG=netdns=go
COPY --from=alpine /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
LABEL org.label-schema.version=latest
LABEL org.label-schema.vcs-url="https://github.com/josmo/drone-rancher.git"
LABEL org.label-schema.name="Drone Rancher"
LABEL org.label-schema.vendor="Josmo"
ADD release/linux/amd64/drone-rancher /bin/
ENTRYPOINT ["/bin/drone-rancher"]
+17
View File
@@ -0,0 +1,17 @@
FROM alpine:3.6 as alpine
RUN apk add -U --no-cache ca-certificates
FROM scratch
ENV GODEBUG=netdns=go
COPY --from=alpine /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
LABEL org.label-schema.version=latest
LABEL org.label-schema.vcs-url="https://github.com/josmo/drone-rancher.git"
LABEL org.label-schema.name="Drone Rancher"
LABEL org.label-schema.vendor="Josmo"
LABEL org.label-schema.schema-version="1.0"
ADD release/linux/arm/drone-rancher /bin/
ENTRYPOINT ["/bin/drone-rancher"]
+20
View File
@@ -0,0 +1,20 @@
FROM alpine:3.6 as alpine
RUN apk add -U --no-cache ca-certificates mailcap
FROM scratch
MAINTAINER Drone.IO Community <drone-dev@googlegroups.com>
ENV GODEBUG=netdns=go
COPY --from=alpine /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=alpine /etc/mime.types /etc/
LABEL org.label-schema.version=latest
LABEL org.label-schema.vcs-url="https://github.com/josmo/drone-rancher.git"
LABEL org.label-schema.name="Drone Rancher"
LABEL org.label-schema.vendor="Josmo"
LABEL org.label-schema.schema-version="1.0"
ADD release/linux/arm64/drone-rancher /bin/
ENTRYPOINT ["/bin/drone-rancher"]
+13
View File
@@ -0,0 +1,13 @@
FROM microsoft/nanoserver:latest
MAINTAINER Drone.IO Community <drone-dev@googlegroups.com>
ENV GODEBUG=netdns=go
LABEL org.label-schema.version=latest
LABEL org.label-schema.vcs-url="https://github.com/josmo/drone-rancher.git"
LABEL org.label-schema.name="Drone Rancher"
LABEL org.label-schema.vendor="Josmo"
LABEL org.label-schema.schema-version="1.0"
ADD release/windows/amd64/drone-rancher /bin/
ENTRYPOINT [ "/bin/drone-rancher" ]
+4 -2
View File
@@ -2,6 +2,7 @@ package main
import (
"github.com/codegangsta/cli"
"fmt"
"log"
"os"
)
@@ -19,14 +20,15 @@ type Rancher struct {
BatchSize int64 `json:"batch_size"`
}
var version string // build number set at compile-time
var build string // build number set at compile-time
func main() {
app := cli.NewApp()
app.Name = "rancher publish"
app.Usage = "rancher publish"
app.Action = run
app.Version = version
app.Version = fmt.Sprintf("1.0.0+%s", build)
app.Flags = []cli.Flag{
cli.StringFlag{