1010 GOOS=linux
1111endif
1212
13+ BUILD_OS ?=linux darwin windows
14+ BUILD_ARCH ?=amd64 386
15+
1316DEV_ENV_IMAGE := quay.io/deis/go-dev:0.10.0
1417DEV_ENV_WORK_DIR := /go/src/${repo_path}
1518DEV_ENV_PREFIX := docker run --rm -e GO15VENDOREXPERIMENT=1 -e CGO_ENABLED=0 -v ${CURDIR}:${DEV_ENV_WORK_DIR} -w ${DEV_ENV_WORK_DIR}
1619DEV_ENV_PREFIX_CGO_ENABLED := docker run --rm -e GO15VENDOREXPERIMENT=1 -e CGO_ENABLED=1 -v ${CURDIR}:${DEV_ENV_WORK_DIR} -w ${DEV_ENV_WORK_DIR}
1720DEV_ENV_CMD := ${DEV_ENV_PREFIX} ${DEV_ENV_IMAGE}
1821DIST_DIR := _dist
1922
23+ GSUTIL_IMAGE := google/cloud-sdk:latest
24+ GSUTIL_PREFIX := docker run --rm -v ${CURDIR}/tmp:/.config -v ${CURDIR}/${DIST_DIR}:/upload
25+ GSUTIL_CMD := ${GSUTIL_PREFIX} ${GSUTIL_IMAGE}
26+ GCS_BUCKET ?= "gs://workflow-cli"
27+
2028GO_FILES = $(wildcard * .go)
2129GO_LDFLAGS = -ldflags "-s -X ${repo_path}/version.BuildVersion=${VERSION}"
2230GO_PACKAGES = cmd parser $(wildcard pkg/* )
2331GO_PACKAGES_REPO_PATH = $(addprefix $(repo_path ) /,$(GO_PACKAGES ) )
2432GOFMT = gofmt -e -l -s
2533GOTEST = go test --cover --race -v
2634
35+ # The tag of the commit
36+ GIT_TAG := $(shell git tag -l --contains HEAD)
2737VERSION ?= $(shell git rev-parse --short HEAD)
2838
2939define check-static-binary
@@ -44,14 +54,19 @@ glideup:
4454build : binary-build
4555 @$(call check-static-binary,deis)
4656
47- build-all :
48- ${DEV_ENV_CMD} gox -verbose ${GO_LDFLAGS} -os=" linux darwin windows" -arch=" amd64 386" -output=" $( DIST_DIR) /deis-latest-{{.OS}}-{{.Arch}}" .
49- ifdef TRAVIS_TAG
50- ${DEV_ENV_CMD} gox -verbose ${GO_LDFLAGS} -os="linux darwin windows" -arch="amd64 386" -output="$(DIST_DIR)/${TRAVIS_TAG}/deis-${TRAVIS_TAG}-{{.OS}}-{{.Arch}}" .
57+ build-latest :
58+ ${DEV_ENV_CMD} gox -verbose -parallel=3 ${GO_LDFLAGS} -os=" ${BUILD_OS} " -arch=" ${BUILD_ARCH} " -output=" $( DIST_DIR) /deis-latest-{{.OS}}-{{.Arch}}" .
59+
60+ build-revision :
61+ ifdef GIT_TAG
62+ ${DEV_ENV_CMD} gox -verbose -parallel=3 ${GO_LDFLAGS} -os="${BUILD_OS}" -arch="${BUILD_ARCH}" -output="$(DIST_DIR)/${GIT_TAG}/deis-${GIT_TAG}-{{.OS}}-{{.Arch}}" .
5163else
52- ${DEV_ENV_CMD} gox -verbose ${GO_LDFLAGS} -os="linux darwin windows " -arch="amd64 386 " -output="$(DIST_DIR)/${VERSION}/deis-${VERSION}-{{.OS}}-{{.Arch}}" .
64+ ${DEV_ENV_CMD} gox -verbose -parallel=3 ${GO_LDFLAGS} -os="${BUILD_OS} " -arch="${BUILD_ARCH} " -output="$(DIST_DIR)/${VERSION}/deis-${VERSION}-{{.OS}}-{{.Arch}}" .
5365endif
5466
67+ build-all : build-latest build-revision
68+
69+
5570binary-build :
5671 ${DEV_ENV_PREFIX} -e GOOS=${GOOS} ${DEV_ENV_IMAGE} go build -a -installsuffix cgo ${GO_LDFLAGS} -o deis .
5772
@@ -86,3 +101,9 @@ test-style:
86101
87102test-unit :
88103 ${DEV_ENV_PREFIX_CGO_ENABLED} ${DEV_ENV_IMAGE} sh -c ' ${GOTEST} $$(glide nv)'
104+
105+ upload-gcs :
106+ ${GSUTIL_CMD} sh -c ' gcloud auth activate-service-account -q --key-file /.config/key.json'
107+ ${GSUTIL_CMD} sh -c ' gsutil -mq cp -a public-read -r /upload/* ${GCS_BUCKET}'
108+ # This has to run in the container to delete files created by the container
109+ ${GSUTIL_CMD} sh -c ' rm -rf /.config/*'
0 commit comments