@@ -9,6 +9,7 @@ CODEGEN := pulumi-tfgen-$(PACK)
99PROVIDER := pulumi-resource-$(PACK )
1010JAVA_GEN := pulumi-java-gen
1111TESTPARALLELISM := 10
12+ GOTESTARGS := ""
1213WORKING_DIR := $(shell pwd)
1314PULUMI_PROVIDER_BUILD_PARALLELISM ?=
1415PULUMI_CONVERT := 1
@@ -221,29 +222,30 @@ lint_provider: provider
221222lint_provider.fix :
222223 cd provider && golangci-lint run --path-prefix provider -c ../.golangci.yml --fix
223224.PHONY : lint_provider lint_provider.fix
225+ build_provider_cmd = cd provider && GOOS=$(1 ) GOARCH=$(2 ) CGO_ENABLED=0 go build $(PULUMI_PROVIDER_BUILD_PARALLELISM ) -o "$(3 ) " -ldflags "$(LDFLAGS ) " $(PROJECT ) /$(PROVIDER_PATH ) /cmd/$(PROVIDER )
226+
227+ provider : bin/$(PROVIDER )
224228
225229# `make provider_no_deps` builds the provider binary directly, without ensuring that
226230# `cmd/pulumi-resource-postgresql/schema.json` is valid and up to date.
227231# To create a release ready binary, you should use `make provider`.
228- build_provider_cmd = cd provider && CGO_ENABLED=0 go build $(PULUMI_PROVIDER_BUILD_PARALLELISM ) -o "$(1 ) " -ldflags "$(LDFLAGS ) " $(PROJECT ) /$(PROVIDER_PATH ) /cmd/$(PROVIDER )
229- provider : bin/$(PROVIDER )
230232provider_no_deps :
231- $(call build_provider_cmd,$(WORKING_DIR ) /bin/$(PROVIDER ) )
233+ $(call build_provider_cmd,$(shell go env GOOS) , $( shell go env GOARCH) , $( WORKING_DIR ) /bin/$(PROVIDER ) )
232234bin/$(PROVIDER ) : .make/schema
233- $(call build_provider_cmd,$(WORKING_DIR ) /bin/$(PROVIDER ) )
235+ $(call build_provider_cmd,$(shell go env GOOS) , $( shell go env GOARCH) , $( WORKING_DIR ) /bin/$(PROVIDER ) )
234236.PHONY : provider provider_no_deps
235237
236238test : export PATH := $(WORKING_DIR ) /bin:$(PATH )
237239test :
238- cd examples && go test -v -tags=all -parallel $(TESTPARALLELISM ) -timeout 2h
240+ cd examples && go test -v -tags=all -parallel $(TESTPARALLELISM ) -timeout 2h $( value GOTESTARGS)
239241.PHONY : test
240-
242+ test_provider_cmd = cd provider && go test -v -short \
243+ -coverprofile="coverage.txt" \
244+ -coverpkg="./...,github.com/hashicorp/terraform-provider-..." \
245+ -parallel $(TESTPARALLELISM ) \
246+ ./...
241247test_provider :
242- cd provider && go test -v -short \
243- -coverprofile=" coverage.txt" \
244- -coverpkg=" ./...,github.com/hashicorp/terraform-provider-..." \
245- -parallel $(TESTPARALLELISM ) \
246- ./...
248+ $(call test_provider_cmd)
247249.PHONY : test_provider
248250
249251tfgen : schema
@@ -322,18 +324,18 @@ SKIP_SIGNING ?=
322324
323325# These targets assume that the schema-embed.json exists - it's generated by tfgen.
324326# We disable CGO to ensure that the binary is statically linked.
325- bin/linux-amd64/$(PROVIDER ) : export GOOS := linux
326- bin/linux-amd64/$(PROVIDER ) : export GOARCH := amd64
327- bin/linux-arm64/$(PROVIDER ) : export GOOS := linux
328- bin/linux-arm64/$(PROVIDER ) : export GOARCH := arm64
329- bin/darwin-amd64/$(PROVIDER ) : export GOOS := darwin
330- bin/darwin-amd64/$(PROVIDER ) : export GOARCH := amd64
331- bin/darwin-arm64/$(PROVIDER ) : export GOOS := darwin
332- bin/darwin-arm64/$(PROVIDER ) : export GOARCH := arm64
333- bin/windows-amd64/$(PROVIDER ) .exe : export GOOS := windows
334- bin/windows-amd64/$(PROVIDER ) .exe : export GOARCH := amd64
327+ bin/linux-amd64/$(PROVIDER ) : GOOS := linux
328+ bin/linux-amd64/$(PROVIDER ) : GOARCH := amd64
329+ bin/linux-arm64/$(PROVIDER ) : GOOS := linux
330+ bin/linux-arm64/$(PROVIDER ) : GOARCH := arm64
331+ bin/darwin-amd64/$(PROVIDER ) : GOOS := darwin
332+ bin/darwin-amd64/$(PROVIDER ) : GOARCH := amd64
333+ bin/darwin-arm64/$(PROVIDER ) : GOOS := darwin
334+ bin/darwin-arm64/$(PROVIDER ) : GOARCH := arm64
335+ bin/windows-amd64/$(PROVIDER ) .exe : GOOS := windows
336+ bin/windows-amd64/$(PROVIDER ) .exe : GOARCH := amd64
335337bin/% /$(PROVIDER ) bin/% /$(PROVIDER ) .exe : bin/jsign-6.0.jar
336- $(call build_provider_cmd,$(WORKING_DIR ) /$@ )
338+ $(call build_provider_cmd,$(GOOS ) , $( GOARCH ) , $( WORKING_DIR ) /$@ )
337339
338340 @# Only sign windows binary if fully configured.
339341 @# Test variables set by joining with | between and looking for || showing at least one variable is empty.
0 commit comments