Rework hack/ and build/ directories.

* Rewrite a bunch of the hack/ directory with modular reusable bash libraries.
* Have 'build/*' build on 'hack/*'.  The stuff in build now just runs hack/* in a docker container.
* Use a docker data container to enable faster incremental builds.
* Standardize output to _output/{local,dockerized}/bin/OS/ARCH/*.  This regularized placement makes cross compilation work.
* Move travis specific scripts under hack/travis

With new dockerized incremental builds, I can do a no-op `make quick-release` in ~30s.  This is a significant improvement.
This commit is contained in:
Joe Beda
2014-10-22 16:26:59 -07:00
parent 203a3d0cec
commit 5d33ce46cc
51 changed files with 1005 additions and 789 deletions

View File

@@ -9,7 +9,8 @@
OUT_DIR = _output
GODEPS_PKG_DIR = Godeps/_workspace/pkg
export GOFLAGS
KUBE_GOFLAGS = $(GOFLAGS)
export KUBE_GOFLAGS
# Build code.
#
@@ -49,7 +50,7 @@ check test:
# make test_integration
test_integration test_integ:
hack/test-integration.sh
.PHONY: integration
.PHONY: test_integration test_integ
# Build and run end-to-end tests.
#
@@ -94,10 +95,10 @@ release:
.PHONY: release
# Build a release, but skip tests
#
#
# Example:
# make release-skip-tests
release-skip-tests:
release-skip-tests quick-release:
KUBE_RELEASE_RUN_TESTS=n build/release.sh
.PHONY: release-skip-tests
.PHONY: release-skip-tests quick-release