mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-31 13:50:01 +00:00 
			
		
		
		
	* 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.
		
	
		
			
				
	
	
		
			105 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # Old-skool build tools.
 | |
| #
 | |
| # Targets (see each target for more information):
 | |
| #   all: Build code.
 | |
| #   check: Run tests.
 | |
| #   test: Run tests.
 | |
| #   clean: Clean up.
 | |
| 
 | |
| OUT_DIR = _output
 | |
| GODEPS_PKG_DIR = Godeps/_workspace/pkg
 | |
| 
 | |
| KUBE_GOFLAGS = $(GOFLAGS)
 | |
| export KUBE_GOFLAGS
 | |
| 
 | |
| # Build code.
 | |
| #
 | |
| # Args:
 | |
| #   WHAT: Directory names to build.  If any of these directories has a 'main'
 | |
| #     package, the build will produce executable files under $(OUT_DIR)/go/bin.
 | |
| #     If not specified, "everything" will be built.
 | |
| #   GOFLAGS: Extra flags to pass to 'go' when building.
 | |
| #
 | |
| # Example:
 | |
| #   make
 | |
| #   make all
 | |
| #   make all WHAT=cmd/kubelet GOFLAGS=-v
 | |
| all:
 | |
| 	hack/build-go.sh $(WHAT)
 | |
| .PHONY: all
 | |
| 
 | |
| # Build and run tests.
 | |
| #
 | |
| # Args:
 | |
| #   WHAT: Directory names to test.  All *_test.go files under these
 | |
| #     directories will be run.  If not specified, "everything" will be tested.
 | |
| #   TESTS: Same as WHAT.
 | |
| #   GOFLAGS: Extra flags to pass to 'go' when building.
 | |
| #
 | |
| # Example:
 | |
| #   make check
 | |
| #   make test
 | |
| #   make check WHAT=pkg/kubelet GOFLAGS=-v
 | |
| check test:
 | |
| 	hack/test-go.sh $(WHAT) $(TESTS)
 | |
| .PHONY: check test
 | |
| 
 | |
| # Build and run integration tests.
 | |
| #
 | |
| # Example:
 | |
| #   make test_integration
 | |
| test_integration test_integ:
 | |
| 	hack/test-integration.sh
 | |
| .PHONY: test_integration test_integ
 | |
| 
 | |
| # Build and run end-to-end tests.
 | |
| #
 | |
| # Example:
 | |
| #   make test_e2e
 | |
| test_e2e:
 | |
| 	hack/e2e-test.sh
 | |
| .PHONY: test_e2e
 | |
| 
 | |
| # Remove all build artifacts.
 | |
| #
 | |
| # Example:
 | |
| #   make clean
 | |
| clean:
 | |
| 	build/make-clean.sh
 | |
| 	rm -rf $(OUT_DIR)
 | |
| 	rm -rf $(GODEPS_PKG_DIR)
 | |
| .PHONY: clean
 | |
| 
 | |
| # Run 'go vet'.
 | |
| #
 | |
| # Args:
 | |
| #   WHAT: Directory names to vet.  All *.go files under these
 | |
| #     directories will be vetted.  If not specified, "everything" will be
 | |
| #     vetted.
 | |
| #   TESTS: Same as WHAT.
 | |
| #   GOFLAGS: Extra flags to pass to 'go' when building.
 | |
| #
 | |
| # Example:
 | |
| #   make vet
 | |
| #   make vet WHAT=pkg/kubelet
 | |
| vet:
 | |
| 	hack/vet-go.sh $(WHAT) $(TESTS)
 | |
| .PHONY: vet
 | |
| 
 | |
| # Build a release
 | |
| #
 | |
| # Example:
 | |
| #   make release
 | |
| release:
 | |
| 	build/release.sh
 | |
| .PHONY: release
 | |
| 
 | |
| # Build a release, but skip tests
 | |
| #
 | |
| # Example:
 | |
| #   make release-skip-tests
 | |
| release-skip-tests quick-release:
 | |
| 	KUBE_RELEASE_RUN_TESTS=n build/release.sh
 | |
| .PHONY: release-skip-tests quick-release
 | |
| 
 |