Skip to content

Agent for executing Drone builds in Docker containers

License

Notifications You must be signed in to change notification settings

jackspirou/drone-exec

 
 

Repository files navigation

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

About

Agent for executing Drone builds in Docker containers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%