Merge pull request #526 from thockin/master

Fix Makefile to run tools on host OS/ARCH (v4)
This commit is contained in:
Kubernetes Prow Robot 2022-06-06 15:12:23 -07:00 committed by GitHub
commit 3fcb46ef00
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 46 additions and 44 deletions

View File

@ -94,23 +94,23 @@ $(OUTBIN): .go/$(OUTBIN).stamp
.PHONY: .go/$(OUTBIN).stamp .PHONY: .go/$(OUTBIN).stamp
.go/$(OUTBIN).stamp: $(BUILD_DIRS) .go/$(OUTBIN).stamp: $(BUILD_DIRS)
@echo "making $(OUTBIN)" @echo "making $(OUTBIN)"
@docker run \ @docker run \
-i \ -i \
--rm \ --rm \
-u $$(id -u):$$(id -g) \ -u $$(id -u):$$(id -g) \
-v $$(pwd):/src \ -v $$(pwd):/src \
-w /src \ -w /src \
-v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin \ -v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin \
-v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin/$(OS)_$(ARCH) \ -v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin/$(OS)_$(ARCH) \
-v $$(pwd)/.go/cache:/.cache \ -v $$(pwd)/.go/cache:/.cache \
--env HTTP_PROXY=$(HTTP_PROXY) \ --env HTTP_PROXY=$(HTTP_PROXY) \
--env HTTPS_PROXY=$(HTTPS_PROXY) \ --env HTTPS_PROXY=$(HTTPS_PROXY) \
$(BUILD_IMAGE) \ $(BUILD_IMAGE) \
/bin/sh -c " \ /bin/sh -c " \
ARCH=$(ARCH) \ ARCH=$(ARCH) \
OS=$(OS) \ OS=$(OS) \
VERSION=$(VERSION) \ VERSION=$(VERSION) \
./build/build.sh \ ./build/build.sh \
" "
@if ! cmp -s .go/$(OUTBIN) $(OUTBIN); then \ @if ! cmp -s .go/$(OUTBIN) $(OUTBIN); then \
mv .go/$(OUTBIN) $(OUTBIN); \ mv .go/$(OUTBIN) $(OUTBIN); \
@ -122,29 +122,31 @@ DOTFILE_IMAGE = $(subst /,_,$(IMAGE))-$(TAG)
LICENSES = .licenses LICENSES = .licenses
$(LICENSES): bin/$(shell go env GOOS)_$(shell go env GOARCH)/$(BIN) $(LICENSES):
@go build -o ./bin/tools github.com/google/go-licenses @GOOS=$(shell go env GOHOSTOS) \
GOARCH=$(shell go env GOHOSTARCH) \
go build -o ./bin/tools github.com/google/go-licenses
@rm -rf $(LICENSES) @rm -rf $(LICENSES)
@./bin/tools/go-licenses save ./... --save_path=$(LICENSES) @./bin/tools/go-licenses save ./... --save_path=$(LICENSES)
@chmod -R a+rx $(LICENSES) @chmod -R a+rx $(LICENSES)
container: .container-$(DOTFILE_IMAGE) container-name container: .container-$(DOTFILE_IMAGE) container-name
.container-$(DOTFILE_IMAGE): bin/$(OS)_$(ARCH)/$(BIN) $(LICENSES) Dockerfile.in .container-$(DOTFILE_IMAGE): bin/$(OS)_$(ARCH)/$(BIN) $(LICENSES) Dockerfile.in
@sed \ @sed \
-e 's|{ARG_BIN}|$(BIN)|g' \ -e 's|{ARG_BIN}|$(BIN)|g' \
-e 's|{ARG_ARCH}|$(ARCH)|g' \ -e 's|{ARG_ARCH}|$(ARCH)|g' \
-e 's|{ARG_OS}|$(OS)|g' \ -e 's|{ARG_OS}|$(OS)|g' \
-e 's|{ARG_FROM}|$(BASEIMAGE)|g' \ -e 's|{ARG_FROM}|$(BASEIMAGE)|g' \
Dockerfile.in > .dockerfile-$(OS)_$(ARCH) Dockerfile.in > .dockerfile-$(OS)_$(ARCH)
@docker buildx build \ @docker buildx build \
--no-cache \ --no-cache \
--progress=plain \ --progress=plain \
--load \ --load \
--platform "$(OS)/$(ARCH)" \ --platform "$(OS)/$(ARCH)" \
--build-arg HTTP_PROXY=$(HTTP_PROXY) \ --build-arg HTTP_PROXY=$(HTTP_PROXY) \
--build-arg HTTPS_PROXY=$(HTTPS_PROXY) \ --build-arg HTTPS_PROXY=$(HTTPS_PROXY) \
-t $(IMAGE):$(TAG) \ -t $(IMAGE):$(TAG) \
-f .dockerfile-$(OS)_$(ARCH) \ -f .dockerfile-$(OS)_$(ARCH) \
. .
@docker images -q $(IMAGE):$(TAG) > $@ @docker images -q $(IMAGE):$(TAG) > $@
@ -176,19 +178,19 @@ version:
@echo $(VERSION) @echo $(VERSION)
test: $(BUILD_DIRS) test: $(BUILD_DIRS)
@docker run \ @docker run \
-i \ -i \
-u $$(id -u):$$(id -g) \ -u $$(id -u):$$(id -g) \
-v $$(pwd):/src \ -v $$(pwd):/src \
-w /src \ -w /src \
-v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin \ -v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin \
-v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin/$(OS)_$(ARCH) \ -v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin/$(OS)_$(ARCH) \
-v $$(pwd)/.go/cache:/.cache \ -v $$(pwd)/.go/cache:/.cache \
--env HTTP_PROXY=$(HTTP_PROXY) \ --env HTTP_PROXY=$(HTTP_PROXY) \
--env HTTPS_PROXY=$(HTTPS_PROXY) \ --env HTTPS_PROXY=$(HTTPS_PROXY) \
$(BUILD_IMAGE) \ $(BUILD_IMAGE) \
/bin/sh -c " \ /bin/sh -c " \
./build/test.sh $(SRC_DIRS) \ ./build/test.sh $(SRC_DIRS) \
" "
@./test_e2e.sh @./test_e2e.sh