Skip to content

Latest commit

 

History

History
67 lines (52 loc) · 1.55 KB

README.md

File metadata and controls

67 lines (52 loc) · 1.55 KB

Drone build agent that executes builds in Docker containers.

Building

Use the following commands to build:

export GO15VENDOREXPERIMENT=1

go build
go test ./...

Running

You can run the program locally for testing purposes. The build details are provided to the program via a JSON payload as seen below:

./drone-exec --debug --pull --cache --clone --build <<EOF
{
	"system": {
		"link": "http://localhost:8000"
	},
	"workspace": {},
	"repo": {
		"owner": "garyburd",
		"name": "redigo",
		"full_name": "garyburd/redigo",
		"link_url": "https://github.com/garyburd/redigo",
		"clone_url": "git://github.com/garyburd/redigo.git"
	},
	"build": {
		"number": 1,
		"ref": "refs/heads/master",
		"commit": "d8dbe4d94f15fe89232e0402c6e8a0ddf21af3ab",
		"branch": "master"
	},
	"job": {
		"environment": {}
	},
	"config": "{ build: { image: 'golang:1.4.2', commands: ['cd redis', 'go build', 'go test -v']}, compose: { redis: { image: 'redis:2.8' } } }"
}
EOF

Note that the above program expects access to a Docker daemon. It will provision all the necessary build containers, execute your build, and then cleanup and remove the build environment.

Docker

Use the following commands to build the Docker image:

# compile the binary for the correct architecture
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 GO15VENDOREXPERIMENT=1 go build

# build the docker image, adding the above binary
docker build --rm=true -t drone/drone-exec .

Vendoring

Using the vexp utility to vendor dependencies:

go get https://github.com/kr/vexp
./vexp