Unification: Drone config, Makefile, structure and badges

This commit is contained in:
Thomas Boerger 2016-01-18 22:31:56 +01:00 committed by Thomas Boerger
parent 1b8ed88565
commit 78cce00412
5 changed files with 96 additions and 32 deletions

View File

@ -1 +1 @@
eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhHQ00ifQ.I7UNh81HqRV7vD9XrlFPRj5OjqcA0Os9gr4HIvWexZ4pbAwW0jG-rS7j0_maMt-36TDnw8yq_QuYYq9krlgrYxOr8hDtD8HpUjvf4gTtBP8gFWlzk2iax7ZYBdt7WzqWLdnOgPO0UbTYsMqpmlvEkWPmWutThEQYUrgtRqL6Wg8C_7ZM9e4HIL-d8v3fEKThJxK4bosRruCULXXEFqy2l98PtkA7ZIuijDB8sHMpRPPhhNyJCfqH1Mq1qc5Lv7BXTnHMWB4o9vc__Mi6fPxKRPdf0UYXwR1aBbrRjHelWFgIIcELZyS_UE-06va6eUhV1VKYIxnhn9WCPCocvaOa3w._YYkhrS1UVH--LOy.70UCog1CF2x1ENWrW8KbeJ98zVPSDsvWW3jFFIpeIiLSMrie9yywx0MDygLZt8DqVyRe65VyUr2_ZLVVgp2PAA8tSB99CAT124zut-MFYfLrczIQompPPXeEOnnbao3zNGCoUBROZVthwDaYD1QRW8ALyV5AoTwz97rm7DaMG1BkzAUSMLcOIXrDsZ3t7kJfT-VLn3NAOQtau7eozG98AWXOHoUQyEKdFAJU6h4ZW7UvuW5Z2ZXwoOSLDEjby9H88bUyDtHqDGPx1tXuPruggbGFExMSTxzFvCJ3SfBtRk7rTdMTJljPeiKVmUGUeBqBUI3PwGcoaKwb22BH89-trNdrdzC3OuBrdtlaGG0eyq28fVVQ3Revdqv9cms9bgQ9RM1o9A.d1XqcZFGi6M3YOIV1osnCg
eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhHQ00ifQ.G6Nny2XGFBtLfgrL0cPtC35a5yZkANTXmCQNlV4d91wNW1FSZWdHhTC9uwn5OaGq8TaeSlg3SLdt02ypmx38WenTc1zFbSjElfVWm8nQJP689ggy5EL0vTIXczbzwKk3Y7KVFAH0g4Xi_Lr6SdJJTIZREACkKcVDWVod44e32bFF7iF-u9vhIQ0GpB76d-WFJgSzBlh4ojBrCA_un2ItjJ3rVPfJi00VbTkh8fiovOsiTWg1MhgcTDyh78tqlD-f9fdeP4W5a88-v7l6H45ttrmhfPFyT46Xju7uhtdLX5MwtqZ_augSelw8qkXmUVM_yNqBDA04HGJBSGxT8rKWKg.QuQsEmFZNiVkEwAJ.XuYkMZlmfeQRaHFpRCg0Y6Ynkj7bxHyPLQ1Okmnk-F7HGogeaS4zxrbc9GQK_EKe5mEaDE_NkS76tAABChSnsXONmTezeRakyatc00PZYykARf2dwodwENI9rrHqZFJqnC0l5moFQyC9iFICeLP9RVdQ9DZhc0t-GU2hCK_CglZ09Ag2eHtvi8x75483_x_ZtVkpF1vsMXOxUMCDO_wCVcWy6o-Fkx7gPBR6AR56qD-MRBGeNn975IQ3bV1fxRTYnvRC3tX6xslZoQ6M-lIZTWFTTvZkEWYe3FSwD2HYUbm7rI4iivoNsFzmsMl38SqSQ_s_MyLcju9CcJsVmXokixKk-TcVCoDDG62gUQWTXEG4jz2sMxfwU4H2Fgg7AlFh2_At3gSVr2GXdgMtB1TYr0e1KQIVW_3DbNtYi6_neHg.k_x3SoJ2TUSAx_awKAYQWw

View File

@ -1,27 +1,37 @@
build:
image: golang:1.5
environment:
- GO15VENDOREXPERIMENT=1
- GOOS=linux
- GOARCH=amd64
- CGO_ENABLED=0
commands:
- go get
- go build
- go test
- make deps
- make vet
- make build
- make test
publish:
coverage:
when:
branch: master
docker:
username: drone
username: $$DOCKER_USER
password: $$DOCKER_PASS
email: $$DOCKER_EMAIL
repo: plugins/drone-docker
tag: latest
when:
branch: master
docker:
username: $$DOCKER_USER
password: $$DOCKER_PASS
email: $$DOCKER_EMAIL
repo: plugins/drone-docker
tag: develop
when:
branch: develop
plugin:
name: Docker
desc: Build and Publish images to a Docker registry.
desc: Build and publish images to a Docker registry
type: publish
image: plugins/drone-docker
labels:

32
Makefile Normal file
View File

@ -0,0 +1,32 @@
.PHONY: clean deps fmt vet test docker
EXECUTABLE ?= drone-docker
IMAGE ?= plugins/$(EXECUTABLE)
CI_BUILD_NUMBER ?= 0
LDFLAGS = -X "main.buildDate=$(shell date -u '+%Y-%m-%d %H:%M:%S %Z')"
PACKAGES = $(shell go list ./... | grep -v /vendor/)
clean:
go clean -i ./...
deps:
go get -t ./...
fmt:
go fmt $(PACKAGES)
vet:
go vet $(PACKAGES)
test:
@for PKG in $(PACKAGES); do go test -cover -coverprofile $$GOPATH/src/$$PKG/coverage.out $$PKG || exit 1; done;
docker:
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags '-s -w $(LDFLAGS)'
docker build --rm -t $(IMAGE) .
$(EXECUTABLE): $(wildcard *.go)
go build -ldflags '-s -w $(LDFLAGS)'
build: $(EXECUTABLE)

View File

@ -1,41 +1,57 @@
# drone-docker
[![Build Status](http://beta.drone.io/api/badges/drone-plugins/drone-docker/status.svg)](http://beta.drone.io/drone-plugins/drone-docker)
[![Coverage Status](https://aircover.co/badges/drone-plugins/drone-docker/coverage.svg)](https://aircover.co/drone-plugins/drone-docker)
[![](https://badge.imagelayers.io/plugins/drone-docker:latest.svg)](https://imagelayers.io/?images=plugins/drone-docker:latest 'Get your own badge on imagelayers.io')
Drone plugin for publishing Docker images
Drone plugin to build and publish images to a Docker registry
## Docker
Build the Docker container:
Build the container using `make`:
```sh
docker build --rm=true -t plugins/drone-docker .
```
make deps docker
```
Build and Publish a Docker container
### Example
```sh
docker run -i --privileged -v $(pwd):/drone/src plugins/drone-docker <<EOF
{
"workspace": {
"path": "/drone/src"
},
"build" : {
"number": 1,
"head_commit": {
"sha": "9f2849d5",
"branch": "master",
"ref": "refs/heads/master"
}
},
"vargs": {
"username": "kevinbacon",
"password": "pa$$word",
"email": "foo@bar.com",
"repo": "foo/bar",
"storage_driver": "aufs"
}
"repo": {
"clone_url": "git://github.com/drone/drone",
"owner": "drone",
"name": "drone",
"full_name": "drone/drone"
},
"system": {
"link_url": "https://beta.drone.io"
},
"build": {
"number": 22,
"status": "success",
"started_at": 1421029603,
"finished_at": 1421029813,
"message": "Update the Readme",
"author": "johnsmith",
"author_email": "john.smith@gmail.com"
"event": "push",
"branch": "master",
"commit": "436b7a6e2abaddfd35740527353e78a227ddcb2c",
"ref": "refs/heads/master"
},
"workspace": {
"root": "/drone/src",
"path": "/drone/src/github.com/drone/drone"
},
"vargs": {
"username": "kevinbacon",
"password": "pa$$word",
"email": "foo@bar.com",
"repo": "foo/bar",
"storage_driver": "aufs"
}
}
EOF
```

View File

@ -40,7 +40,13 @@ type Docker struct {
BuildArgs []string `json:"build_args"`
}
var (
buildDate string
)
func main() {
fmt.Printf("Drone Docker Plugin built at %s\n", buildDate)
workspace := plugin.Workspace{}
build := plugin.Build{}
vargs := Docker{}