enable gcr and heroku plugins
This commit is contained in:
		
							parent
							
								
									7636c99bb6
								
							
						
					
					
						commit
						3e321f1904
					
				
							
								
								
									
										22
									
								
								.drone.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								.drone.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | ||||
| #!/bin/sh | ||||
| 
 | ||||
| set -e | ||||
| set -x | ||||
| 
 | ||||
| # compile the main binary | ||||
| GOOS=linux GOARCH=amd64 CGO_ENABLED=0         go build -ldflags "-X main.build=${DRONE_BUILD_NUMBER}" -a -tags netgo -o release/linux/amd64/drone-docker github.com/drone-plugins/drone-docker/cmd/drone-docker | ||||
| GOOS=linux GOARCH=arm64 CGO_ENABLED=0         go build -ldflags "-X main.build=${DRONE_BUILD_NUMBER}" -a -tags netgo -o release/linux/arm64/drone-docker github.com/drone-plugins/drone-docker/cmd/drone-docker | ||||
| GOOS=linux GOARCH=arm   CGO_ENABLED=0 GOARM=7 go build -ldflags "-X main.build=${DRONE_BUILD_NUMBER}" -a -tags netgo -o release/linux/arm/drone-docker   github.com/drone-plugins/drone-docker/cmd/drone-docker | ||||
| 
 | ||||
| # build the heroku binary | ||||
| GOOS=linux GOARCH=amd64 CGO_ENABLED=0         go build -a -tags netgo -o release/linux/amd64/drone-docker-heroku github.com/drone-plugins/drone-docker/cmd/drone-docker-heroku | ||||
| GOOS=linux GOARCH=arm64 CGO_ENABLED=0         go build -a -tags netgo -o release/linux/arm64/drone-docker-heroku github.com/drone-plugins/drone-docker/cmd/drone-docker-heroku | ||||
| GOOS=linux GOARCH=arm   CGO_ENABLED=0 GOARM=7 go build -a -tags netgo -o release/linux/arm/drone-docker-heroku   github.com/drone-plugins/drone-docker/cmd/drone-docker-heroku | ||||
| 
 | ||||
| # build the gcr binary | ||||
| GOOS=linux GOARCH=amd64 CGO_ENABLED=0         go build -a -tags netgo -o release/linux/amd64/drone-docker-gcr github.com/drone-plugins/drone-docker/cmd/drone-docker-gcr | ||||
| GOOS=linux GOARCH=arm64 CGO_ENABLED=0         go build -a -tags netgo -o release/linux/arm64/drone-docker-gcr github.com/drone-plugins/drone-docker/cmd/drone-docker-gcr | ||||
| GOOS=linux GOARCH=arm   CGO_ENABLED=0 GOARM=7 go build -a -tags netgo -o release/linux/arm/drone-docker-gcr   github.com/drone-plugins/drone-docker/cmd/drone-docker-gcr | ||||
| 
 | ||||
| # build the ecr binary | ||||
| # todo | ||||
							
								
								
									
										33
									
								
								.drone.yml
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								.drone.yml
									
									
									
									
									
								
							| @ -3,21 +3,36 @@ workspace: | ||||
|   path: src/github.com/drone-plugins/drone-docker | ||||
| 
 | ||||
| pipeline: | ||||
|   test: | ||||
|     image: golang:1.6 | ||||
|     environment: | ||||
|       - CGO_ENABLED=0 | ||||
|     commands: | ||||
|       # Disabled: main.go:99: cli.StringSlice composite literal uses unkeyed fields | ||||
|       # - go vet | ||||
|       - go test -cover -coverprofile=coverage.out | ||||
|       - go build -ldflags "-s -w -X main.build=$DRONE_BUILD_NUMBER" -a -tags netgo | ||||
|   build: | ||||
|     image: golang:1.9 | ||||
|     commands: sh .drone.sh | ||||
| 
 | ||||
|   publish: | ||||
|     image: plugins/docker | ||||
|     repo: plugins/docker | ||||
|     tags: [ "latest", "17", "17.05" ] | ||||
|     secrets: [ docker_username, docker_password ] | ||||
|     dockerfile: docker/Dockerfile | ||||
|     when: | ||||
|       branch: master | ||||
|       event: push | ||||
| 
 | ||||
|   publish_heroku: | ||||
|     image: plugins/docker | ||||
|     repo: plugins/heroku | ||||
|     tags: [ "latest", "17", "17.05" ] | ||||
|     secrets: [ docker_username, docker_password ] | ||||
|     dockerfile: docker/heroku/Dockerfile | ||||
|     when: | ||||
|       branch: master | ||||
|       event: push | ||||
| 
 | ||||
|   publish_gcr: | ||||
|     image: plugins/docker | ||||
|     repo: plugins/gcr | ||||
|     tags: [ "latest", "17", "17.05" ] | ||||
|     secrets: [ docker_username, docker_password ] | ||||
|     dockerfile: docker/gcr/Dockerfile | ||||
|     when: | ||||
|       branch: master | ||||
|       event: push | ||||
|  | ||||
							
								
								
									
										29
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,28 +1,3 @@ | ||||
| # Compiled Object files, Static and Dynamic libs (Shared Objects) | ||||
| *.o | ||||
| *.a | ||||
| *.so | ||||
| 
 | ||||
| # Folders | ||||
| _obj | ||||
| _test | ||||
| 
 | ||||
| # Architecture specific extensions/prefixes | ||||
| *.[568vq] | ||||
| [568vq].out | ||||
| 
 | ||||
| *.cgo1.go | ||||
| *.cgo2.c | ||||
| _cgo_defun.c | ||||
| _cgo_gotypes.go | ||||
| _cgo_export.* | ||||
| 
 | ||||
| _testmain.go | ||||
| 
 | ||||
| *.exe | ||||
| *.test | ||||
| *.prof | ||||
| .env | ||||
| 
 | ||||
| release | ||||
| coverage.out | ||||
| drone-docker | ||||
| tmp | ||||
|  | ||||
| @ -1,4 +0,0 @@ | ||||
| FROM docker:17.05.0-ce-dind | ||||
| 
 | ||||
| ADD drone-docker /bin/ | ||||
| ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-docker"] | ||||
| @ -1,4 +0,0 @@ | ||||
| FROM ??? | ||||
| 
 | ||||
| ADD drone-docker /bin/ | ||||
| ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-docker"] | ||||
							
								
								
									
										46
									
								
								MAINTAINERS
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								MAINTAINERS
									
									
									
									
									
								
							| @ -1,46 +0,0 @@ | ||||
| [people] | ||||
|   [people.bradrydzewski] | ||||
|     name = "Brad Rydzewski" | ||||
|     email = "brad@drone.io" | ||||
|     login = "bradrydzewski" | ||||
|   [people.Bugagazavr] | ||||
|     name = "Kirill" | ||||
|     email = "" | ||||
|     login = "Bugagazavr" | ||||
|   [people.donny-dont] | ||||
|     name = "Don Olmstead" | ||||
|     email = "donny-dont@gmail.com" | ||||
|     login = "donny-dont" | ||||
|   [people.jackspirou] | ||||
|     name = "Jack Spirou" | ||||
|     email = "" | ||||
|     login = "jackspirou" | ||||
|   [people.msteinert] | ||||
|     name = "Mike Steinert" | ||||
|     email = "" | ||||
|     login = "msteinert" | ||||
|   [people.nlf] | ||||
|     name = "Nathan LaFreniere" | ||||
|     email = "" | ||||
|     login = "nlf" | ||||
|   [people.tboerger] | ||||
|     name = "Thomas Boerger" | ||||
|     email = "thomas@webhippie.de" | ||||
|     login = "tboerger" | ||||
|   [people.athieriot] | ||||
|     name = "Aurélien Thieriot" | ||||
|     email = "a.thieriot@gmail.com" | ||||
|     login = "athieriot" | ||||
| 
 | ||||
| [org] | ||||
|   [org.core] | ||||
|     people = [ | ||||
|       "bradrydzewski", | ||||
|       "Bugagazavr", | ||||
|       "donny-dont", | ||||
|       "jackspirou", | ||||
|       "msteinert", | ||||
|       "nlf", | ||||
|       "tboerger", | ||||
|       "athieriot" | ||||
|     ] | ||||
							
								
								
									
										5
									
								
								cmd/drone-docker-ecr/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								cmd/drone-docker-ecr/main.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | ||||
| package main | ||||
| 
 | ||||
| func main() { | ||||
| 
 | ||||
| } | ||||
							
								
								
									
										50
									
								
								cmd/drone-docker-gcr/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								cmd/drone-docker-gcr/main.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,50 @@ | ||||
| package main | ||||
| 
 | ||||
| import ( | ||||
| 	"encoding/base64" | ||||
| 	"os" | ||||
| 	"os/exec" | ||||
| 	"path" | ||||
| 	"strings" | ||||
| ) | ||||
| 
 | ||||
| func main() { | ||||
| 	var ( | ||||
| 		username = "_json_key" | ||||
| 		password = os.Getenv("GCR_TOKEN") | ||||
| 		registry = os.Getenv("PLUGIN_REGISTRY") | ||||
| 		repo     = os.Getenv("PLUGIN_REPO") | ||||
| 	) | ||||
| 
 | ||||
| 	// decode the token if base64 encoded
 | ||||
| 	decoded, err := base64.StdEncoding.DecodeString(password) | ||||
| 	if err == nil { | ||||
| 		password = string(decoded) | ||||
| 	} | ||||
| 
 | ||||
| 	// default registry value
 | ||||
| 	if registry == "" { | ||||
| 		registry = "gcr.io" | ||||
| 	} | ||||
| 
 | ||||
| 	// must use the fully qualified repo name. If the
 | ||||
| 	// repo name does not have the registry prefix we
 | ||||
| 	// should prepend.
 | ||||
| 	if !strings.HasPrefix(repo, registry) { | ||||
| 		repo = path.Join(registry, repo) | ||||
| 		os.Setenv("PLUGIN_REPO", repo) | ||||
| 	} | ||||
| 
 | ||||
| 	os.Setenv("PLUGIN_REGISTRY", registry) | ||||
| 	os.Setenv("DOCKER_USERNAME", username) | ||||
| 	os.Setenv("DOCKER_PASSWORD", password) | ||||
| 
 | ||||
| 	// invoke the base docker plugin binary
 | ||||
| 	cmd := exec.Command("drone-docker") | ||||
| 	cmd.Stdout = os.Stdout | ||||
| 	cmd.Stderr = os.Stderr | ||||
| 	err = cmd.Run() | ||||
| 	if err != nil { | ||||
| 		os.Exit(1) | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										45
									
								
								cmd/drone-docker-heroku/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								cmd/drone-docker-heroku/main.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,45 @@ | ||||
| package main | ||||
| 
 | ||||
| import ( | ||||
| 	"os" | ||||
| 	"os/exec" | ||||
| 	"path" | ||||
| ) | ||||
| 
 | ||||
| func main() { | ||||
| 	var ( | ||||
| 		registry = "registry.heroku.com" | ||||
| 		process  = os.Getenv("PLUGIN_PROCESS_TYPE") | ||||
| 		app      = os.Getenv("PLUGIN_APP") | ||||
| 		email    = os.Getenv("PLUGIN_EMAIL") | ||||
| 		key      = os.Getenv("PLUGIN_API_KEY") | ||||
| 	) | ||||
| 
 | ||||
| 	// if the heroku email is provided as a named secret
 | ||||
| 	// then we should use it.
 | ||||
| 	if os.Getenv("HEROKU_EMAIL") != "" { | ||||
| 		email = os.Getenv("HEROKU_EMAIL") | ||||
| 	} | ||||
| 
 | ||||
| 	// if the heroku api key is provided as a named secret
 | ||||
| 	// then we should use it.
 | ||||
| 	if os.Getenv("HEROKU_API_KEY") != "" { | ||||
| 		key = os.Getenv("HEROKU_API_KEY") | ||||
| 	} | ||||
| 
 | ||||
| 	os.Setenv("PLUGIN_REGISTRY", registry) | ||||
| 	os.Setenv("PLUGIN_REPO", path.Join(registry, app, process)) | ||||
| 
 | ||||
| 	os.Setenv("DOCKER_PASSWORD", key) | ||||
| 	os.Setenv("DOCKER_USERNAME", email) | ||||
| 	os.Setenv("DOCKER_EMAIL", email) | ||||
| 
 | ||||
| 	// invoke the base docker plugin binary
 | ||||
| 	cmd := exec.Command("drone-docker") | ||||
| 	cmd.Stdout = os.Stdout | ||||
| 	cmd.Stderr = os.Stderr | ||||
| 	err := cmd.Run() | ||||
| 	if err != nil { | ||||
| 		os.Exit(1) | ||||
| 	} | ||||
| } | ||||
| @ -7,6 +7,8 @@ import ( | ||||
| 	"github.com/Sirupsen/logrus" | ||||
| 	"github.com/joho/godotenv" | ||||
| 	"github.com/urfave/cli" | ||||
| 
 | ||||
| 	"github.com/drone-plugins/drone-docker" | ||||
| ) | ||||
| 
 | ||||
| var build = "0" // build number set at compile-time
 | ||||
| @ -152,7 +154,7 @@ func main() { | ||||
| 		cli.StringFlag{ | ||||
| 			Name:   "docker.registry", | ||||
| 			Usage:  "docker registry", | ||||
| 			Value:  defaultRegistry, | ||||
| 			Value:  "https://index.docker.io/v1/", | ||||
| 			EnvVar: "PLUGIN_REGISTRY,DOCKER_REGISTRY", | ||||
| 		}, | ||||
| 		cli.StringFlag{ | ||||
| @ -178,15 +180,15 @@ func main() { | ||||
| } | ||||
| 
 | ||||
| func run(c *cli.Context) error { | ||||
| 	plugin := Plugin{ | ||||
| 	plugin := docker.Plugin{ | ||||
| 		Dryrun: c.Bool("dry-run"), | ||||
| 		Login: Login{ | ||||
| 		Login: docker.Login{ | ||||
| 			Registry: c.String("docker.registry"), | ||||
| 			Username: c.String("docker.username"), | ||||
| 			Password: c.String("docker.password"), | ||||
| 			Email:    c.String("docker.email"), | ||||
| 		}, | ||||
| 		Build: Build{ | ||||
| 		Build: docker.Build{ | ||||
| 			Remote:      c.String("remote.url"), | ||||
| 			Name:        c.String("commit.sha"), | ||||
| 			Dockerfile:  c.String("dockerfile"), | ||||
| @ -199,7 +201,7 @@ func run(c *cli.Context) error { | ||||
| 			Repo:        c.String("repo"), | ||||
| 			LabelSchema: c.StringSlice("label-schema"), | ||||
| 		}, | ||||
| 		Daemon: Daemon{ | ||||
| 		Daemon: docker.Daemon{ | ||||
| 			Registry:      c.String("docker.registry"), | ||||
| 			Mirror:        c.String("daemon.mirror"), | ||||
| 			StorageDriver: c.String("daemon.storage-driver"), | ||||
| @ -1,4 +1,4 @@ | ||||
| package main | ||||
| package docker | ||||
| 
 | ||||
| import ( | ||||
| 	"fmt" | ||||
| @ -9,11 +9,6 @@ import ( | ||||
| 	"time" | ||||
| ) | ||||
| 
 | ||||
| const ( | ||||
| 	// default docker registry
 | ||||
| 	defaultRegistry = "https://index.docker.io/v1/" | ||||
| ) | ||||
| 
 | ||||
| type ( | ||||
| 	// Daemon defines Docker daemon parameters.
 | ||||
| 	Daemon struct { | ||||
							
								
								
									
										6
									
								
								docker/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								docker/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | ||||
| # docker build --rm -f docker/Dockerfile -t plugins/docker . | ||||
| 
 | ||||
| FROM docker:17.05.0-ce-dind | ||||
| 
 | ||||
| ADD release/linux/amd64/drone-docker /bin/ | ||||
| ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-docker"] | ||||
							
								
								
									
										1
									
								
								docker/Dockerfile.arm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								docker/Dockerfile.arm
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| # see https://github.com/docker-library/docker/issues/67 | ||||
							
								
								
									
										1
									
								
								docker/Dockerfile.arm64
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								docker/Dockerfile.arm64
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| # see https://github.com/docker-library/docker/issues/67 | ||||
							
								
								
									
										1
									
								
								docker/ecr/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								docker/ecr/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| FROM plugins/docker:latest | ||||
							
								
								
									
										1
									
								
								docker/ecr/Dockerfile.arm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								docker/ecr/Dockerfile.arm
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| FROM plugins/docker:linux-arm | ||||
							
								
								
									
										1
									
								
								docker/ecr/Dockerfile.arm64
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								docker/ecr/Dockerfile.arm64
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| FROM plugins/docker:linux-arm64 | ||||
							
								
								
									
										6
									
								
								docker/gcr/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								docker/gcr/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | ||||
| # docker build --rm -f docker/gcr/Dockerfile -t plugins/gcr . | ||||
| 
 | ||||
| FROM plugins/docker:latest | ||||
| 
 | ||||
| ADD release/linux/amd64/drone-docker-gcr /bin/ | ||||
| ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-docker-gcr"] | ||||
							
								
								
									
										4
									
								
								docker/gcr/Dockerfile.arm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								docker/gcr/Dockerfile.arm
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| FROM plugins/docker:linux-arm | ||||
| 
 | ||||
| ADD release/linux/arm64/drone-docker-gcr /bin/ | ||||
| ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-docker-gcr"] | ||||
							
								
								
									
										4
									
								
								docker/gcr/Dockerfile.arm64
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								docker/gcr/Dockerfile.arm64
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| FROM plugins/docker:linux-arm64 | ||||
| 
 | ||||
| ADD release/linux/arm64/drone-docker-gcr /bin/ | ||||
| ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-docker-gcr"] | ||||
							
								
								
									
										6
									
								
								docker/heroku/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								docker/heroku/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | ||||
| # docker build --rm -f docker/heroku/Dockerfile -t plugins/heroku . | ||||
| 
 | ||||
| FROM plugins/docker:latest | ||||
| 
 | ||||
| ADD release/linux/amd64/drone-docker-heroku /bin/ | ||||
| ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-docker-heroku"] | ||||
							
								
								
									
										4
									
								
								docker/heroku/Dockerfile.arm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								docker/heroku/Dockerfile.arm
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| FROM plugins/docker:linux-arm | ||||
| 
 | ||||
| ADD release/linux/arm/drone-docker-heroku /bin/ | ||||
| ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-docker-heroku"] | ||||
							
								
								
									
										4
									
								
								docker/heroku/Dockerfile.arm64
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								docker/heroku/Dockerfile.arm64
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| FROM plugins/docker:linux-arm64 | ||||
| 
 | ||||
| ADD release/linux/arm64/drone-docker-heroku /bin/ | ||||
| ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-docker-heroku"] | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Brad Rydzewski
						Brad Rydzewski