working crossbuild

This commit is contained in:
Vince Montalbano 2016-12-21 10:35:01 -06:00
parent 5ea5b50511
commit ba9f296b0d
1 changed files with 18 additions and 19 deletions

View File

@ -48,16 +48,6 @@ ifdef STATIC_BUILD
EXTRA_LDFLAGS=-s
endif
# Cross compile commands
ifdef GOOS
CROSSBUILD_GOOS=-e GOOS=${GOOS} -e CGO_ENABLED=0
endif
ifdef GOOS
CROSSBUILD_GOARCH=-e GOARCH=${GOARCH} -e CGO_ENABLED=0
endif
kops: kops-gobindata
go install ${EXTRA_BUILDFLAGS} -ldflags "-X main.BuildVersion=${VERSION} ${EXTRA_LDFLAGS}" k8s.io/kops/cmd/kops/...
@ -91,6 +81,17 @@ test:
go test k8s.io/kops/dns-controller/pkg/... -args -v=1 -logtostderr
go test k8s.io/kops/cmd/... -args -v=1 -logtostderr
crossbuild-nodeup:
mkdir -p .build/dist/
GOOS=darwin GOARCH=amd64 go build -a ${EXTRA_BUILDFLAGS} -o .build/dist/darwin/amd64/nodeup -ldflags "${EXTRA_LDFLAGS} -X main.BuildVersion=${VERSION}" k8s.io/kops/cmd/nodeup
GOOS=linux GOARCH=amd64 go build -a ${EXTRA_BUILDFLAGS} -o .build/dist/linux/amd64/nodeup -ldflags "${EXTRA_LDFLAGS} -X main.BuildVersion=${VERSION}" k8s.io/kops/cmd/nodeup
#GOOS=windows GOARCH=amd64 go build -o .build/dist/windows/amd64/kops -ldflags "-X main.BuildVersion=${VERSION}" -v k8s.io/kops/cmd/kops/...
crossbuild-nodeup-in-docker:
docker pull golang:${GOVERSION} # Keep golang image up to date
docker run --name=nodeup-build-${UNIQUE} -e STATIC_BUILD=yes -e VERSION=${VERSION} -v ${MAKEDIR}:/go/src/k8s.io/kops golang:${GOVERSION} make -f /go/src/k8s.io/kops/Makefile crossbuild-nodeup
docker cp nodeup-build-${UNIQUE}:/go/.build .
crossbuild:
mkdir -p .build/dist/
GOOS=darwin GOARCH=amd64 go build -a ${EXTRA_BUILDFLAGS} -o .build/dist/darwin/amd64/kops -ldflags "${EXTRA_LDFLAGS} -X main.BuildVersion=${VERSION}" k8s.io/kops/cmd/kops
@ -134,10 +135,10 @@ gcs-publish-ci: gcs-upload
gen-cli-docs:
@kops genhelpdocs --out docs/cli
# Assumes running on linux for speed (todo: crossbuild on OSX?)
# Will always push a linux-based build up to the server
push: nodeup-gocode
scp -C ${GOPATH_1ST}/bin/nodeup ${TARGET}:/tmp/
scp -C .build/dist/linux/amd64/nodeup ${TARGET}:/tmp/
push-gce-dry: push
ssh ${TARGET} sudo SKIP_PACKAGE_UPDATE=1 /tmp/nodeup --conf=metadata://gce/config --dryrun --v=8
@ -173,12 +174,10 @@ nodeup: nodeup-dist
nodeup-gocode: kops-gobindata
go install ${EXTRA_BUILDFLAGS} -ldflags "${EXTRA_LDFLAGS} -X main.BuildVersion=${VERSION}" k8s.io/kops/cmd/nodeup
nodeup-dist:
docker pull golang:${GOVERSION} # Keep golang image up to date
docker run --name=nodeup-build-${UNIQUE} ${CROSSBUILD_GOOS} ${CROSSBUILD_GOARCH} -e STATIC_BUILD=yes -e VERSION=${VERSION} -v ${MAKEDIR}:/go/src/k8s.io/kops golang:${GOVERSION} make -f /go/src/k8s.io/kops/Makefile nodeup-gocode
mkdir -p .build/dist
docker cp nodeup-build-${UNIQUE}:/go/bin/nodeup .build/dist/
(sha1sum .build/dist/nodeup | cut -d' ' -f1) > .build/dist/nodeup.sha1
nodeup-dist: crossbuild-nodeup-in-docker
mkdir -p .build/dist/
(sha1sum .build/dist/darwin/amd64/nodeup | cut -d' ' -f1) > .build/dist/darwin/amd64/nodeup.sha1
(sha1sum .build/dist/linux/amd64/nodeup | cut -d' ' -f1) > .build/dist/linux/amd64/nodeup.sha1
dns-controller-gocode:
go install k8s.io/kops/dns-controller/cmd/dns-controller