2018-04-28 22:05:30 +02:00
|
|
|
PROJECT_NAME := Pulumi SDK
|
2019-10-26 01:59:50 +02:00
|
|
|
SUB_PROJECTS := sdk/dotnet sdk/nodejs sdk/python sdk/go
|
2017-11-12 01:20:56 +01:00
|
|
|
include build/common.mk
|
2017-06-21 23:23:48 +02:00
|
|
|
|
2020-04-14 10:30:25 +02:00
|
|
|
PROJECT := github.com/pulumi/pulumi/pkg/v2/cmd/pulumi
|
2020-03-26 21:42:43 +01:00
|
|
|
PROJECT_PKGS := $(shell cd ./pkg && go list ./... | grep -v /vendor/)
|
2020-03-27 00:32:20 +01:00
|
|
|
TESTS_PKGS := $(shell cd ./tests && go list ./... | grep -v tests/templates | grep -v /vendor/)
|
2019-10-30 04:14:49 +01:00
|
|
|
VERSION := $(shell scripts/get-version HEAD)
|
2016-11-15 20:30:34 +01:00
|
|
|
|
2017-11-12 01:20:56 +01:00
|
|
|
TESTPARALLELISM := 10
|
2018-01-24 00:56:58 +01:00
|
|
|
|
2020-03-19 00:41:23 +01:00
|
|
|
ensure::
|
|
|
|
$(call STEP_MESSAGE)
|
|
|
|
ifeq ($(NOPROXY), true)
|
|
|
|
@echo "cd sdk && GO111MODULE=on go mod tidy"; cd sdk && GO111MODULE=on go mod tidy
|
2020-03-25 23:57:46 +01:00
|
|
|
@echo "cd sdk && GO111MODULE=on go mod download"; cd sdk && GO111MODULE=on go mod download
|
2020-03-19 00:41:23 +01:00
|
|
|
@echo "cd pkg && GO111MODULE=on go mod tidy"; cd pkg && GO111MODULE=on go mod tidy
|
2020-03-25 23:57:46 +01:00
|
|
|
@echo "cd pkg && GO111MODULE=on go mod download"; cd pkg && GO111MODULE=on go mod download
|
2020-04-14 10:30:25 +02:00
|
|
|
@echo "cd scripts && GO111MODULE=on go mod tidy"; cd scripts && GO111MODULE=on go mod tidy
|
|
|
|
@echo "cd scripts && GO111MODULE=on go mod download"; cd scripts && GO111MODULE=on go mod download
|
2020-03-19 00:41:23 +01:00
|
|
|
@echo "cd tests && GO111MODULE=on go mod tidy"; cd tests && GO111MODULE=on go mod tidy
|
2020-03-25 23:57:46 +01:00
|
|
|
@echo "cd tests && GO111MODULE=on go mod download"; cd tests && GO111MODULE=on go mod download
|
2020-03-31 13:07:24 +02:00
|
|
|
@echo "cd scripts && GO111MODULE=on go mod tidy"; cd scripts && GO111MODULE=on go mod tidy
|
|
|
|
@echo "cd scripts && GO111MODULE=on go mod download"; cd scripts && GO111MODULE=on go mod download
|
2020-03-19 00:41:23 +01:00
|
|
|
else
|
|
|
|
@echo "cd sdk && GO111MODULE=on GOPROXY=$(GOPROXY) go mod tidy"; cd sdk && GO111MODULE=on GOPROXY=$(GOPROXY) go mod tidy
|
2020-03-25 23:57:46 +01:00
|
|
|
@echo "cd sdk && GO111MODULE=on GOPROXY=$(GOPROXY) go mod download"; cd sdk && GO111MODULE=on GOPROXY=$(GOPROXY) go mod download
|
2020-03-19 00:41:23 +01:00
|
|
|
@echo "cd pkg && GO111MODULE=on GOPROXY=$(GOPROXY) go mod tidy"; cd pkg && GO111MODULE=on GOPROXY=$(GOPROXY) go mod tidy
|
2020-03-25 23:57:46 +01:00
|
|
|
@echo "cd pkg && GO111MODULE=on GOPROXY=$(GOPROXY) go mod download"; cd pkg && GO111MODULE=on GOPROXY=$(GOPROXY) go mod download
|
2020-04-14 10:30:25 +02:00
|
|
|
@echo "cd scripts && GO111MODULE=on GOPROXY=$(GOPROXY) go mod tidy"; cd scripts && GO111MODULE=on GOPROXY=$(GOPROXY) go mod tidy
|
|
|
|
@echo "cd scripts && GO111MODULE=on GOPROXY=$(GOPROXY) go mod download"; cd scripts && GO111MODULE=on GOPROXY=$(GOPROXY) go mod download
|
2020-03-19 00:41:23 +01:00
|
|
|
@echo "cd tests && GO111MODULE=on GOPROXY=$(GOPROXY) go mod tidy"; cd tests && GO111MODULE=on GOPROXY=$(GOPROXY) go mod tidy
|
2020-03-25 23:57:46 +01:00
|
|
|
@echo "cd tests && GO111MODULE=on GOPROXY=$(GOPROXY) go mod download"; cd tests && GO111MODULE=on GOPROXY=$(GOPROXY) go mod download
|
2020-03-31 13:07:24 +02:00
|
|
|
@echo "cd scripts && GO111MODULE=on GOPROXY=$(GOPROXY) go mod tidy"; cd scripts && GO111MODULE=on GOPROXY=$(GOPROXY) go mod tidy
|
|
|
|
@echo "cd scripts && GO111MODULE=on GOPROXY=$(GOPROXY) go mod download"; cd scripts && GO111MODULE=on GOPROXY=$(GOPROXY) go mod download
|
2020-03-19 00:41:23 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
2018-07-12 22:29:35 +02:00
|
|
|
build-proto::
|
|
|
|
cd sdk/proto && ./generate.sh
|
|
|
|
|
2020-03-09 18:35:20 +01:00
|
|
|
.PHONY: generate
|
|
|
|
generate::
|
|
|
|
$(call STEP_MESSAGE)
|
|
|
|
echo "Generate static assets bundle for docs generator"
|
2020-04-16 18:05:26 +02:00
|
|
|
cd pkg && go generate ./codegen/docs/gen.go
|
2020-03-09 18:35:20 +01:00
|
|
|
|
2020-05-04 23:26:52 +02:00
|
|
|
build:: generate
|
2020-04-14 10:30:25 +02:00
|
|
|
cd pkg && go install -ldflags "-X github.com/pulumi/pulumi/pkg/v2/version.Version=${VERSION}" ${PROJECT}
|
2017-01-28 00:42:55 +01:00
|
|
|
|
2020-05-04 23:26:52 +02:00
|
|
|
install:: generate
|
2020-04-14 10:30:25 +02:00
|
|
|
cd pkg && GOBIN=$(PULUMI_BIN) go install -ldflags "-X github.com/pulumi/pulumi/pkg/v2/version.Version=${VERSION}" ${PROJECT}
|
2017-10-05 23:08:35 +02:00
|
|
|
|
2020-05-04 23:26:52 +02:00
|
|
|
dist:: build
|
2020-04-14 10:30:25 +02:00
|
|
|
cd pkg && go install -ldflags "-X github.com/pulumi/pulumi/pkg/v2/version.Version=${VERSION}" ${PROJECT}
|
2018-08-08 22:00:42 +02:00
|
|
|
|
2020-05-14 05:27:15 +02:00
|
|
|
# NOTE: the brew target intentionally avoids the dependency on `build`, as it does not require the language SDKs.
|
|
|
|
brew::
|
|
|
|
cd pkg && go install -ldflags "-X github.com/pulumi/pulumi/pkg/v2/version.Version=${VERSION}" ${PROJECT}
|
|
|
|
|
2017-11-12 01:20:56 +01:00
|
|
|
lint::
|
2020-03-27 04:19:18 +01:00
|
|
|
for DIR in "pkg" "sdk" "tests" ; do \
|
2020-04-07 04:43:16 +02:00
|
|
|
pushd $$DIR ; golangci-lint run -c ../.golangci.yml --timeout 5m ; popd ; \
|
2020-03-18 21:51:25 +01:00
|
|
|
done
|
2017-01-28 00:42:55 +01:00
|
|
|
|
2020-05-04 23:26:52 +02:00
|
|
|
test_fast:: build
|
2020-03-25 23:57:46 +01:00
|
|
|
cd pkg && $(GO_TEST_FAST) ${PROJECT_PKGS}
|
2017-08-06 17:52:32 +02:00
|
|
|
|
2020-05-04 23:26:52 +02:00
|
|
|
test_all:: build $(SUB_PROJECTS:%=%_install)
|
2020-03-25 23:57:46 +01:00
|
|
|
cd pkg && $(GO_TEST) ${PROJECT_PKGS}
|
|
|
|
cd tests && $(GO_TEST) -v -p=1 ${TESTS_PKGS}
|
Makeify more; add a "full build" target (#193)
* Makeify more; add a "full build" target
This change uses make for more of our tree. Namely, the AWS provider
and LumiJS compilers each now use make to build and/or install them.
Not only does this bring about some consistency to how we build and
test things, but also made it easy to add a full build target:
$ make all
This target will build, test, and install the core Go tools, the LumiJS
compiler, and the AWS provider, in that order.
Each can be made in isolation, however, which ensures that the inner
loop for those is fast and so that, when it comes to finishing
pulumi/lumi#147, we can easily split them out and make from the top.
2017-06-02 23:26:34 +02:00
|
|
|
|
2018-03-06 23:36:50 +01:00
|
|
|
.PHONY: publish_tgz
|
|
|
|
publish_tgz:
|
2017-11-12 01:20:56 +01:00
|
|
|
$(call STEP_MESSAGE)
|
2018-03-06 23:36:50 +01:00
|
|
|
./scripts/publish_tgz.sh
|
|
|
|
|
|
|
|
.PHONY: publish_packages
|
|
|
|
publish_packages:
|
|
|
|
$(call STEP_MESSAGE)
|
|
|
|
./scripts/publish_packages.sh
|
2016-11-15 20:30:34 +01:00
|
|
|
|
2020-04-30 21:52:05 +02:00
|
|
|
# Run the integration tests for our DockerHub containers. We do so only via the
|
|
|
|
# "Travis Cron" job type, because (1) the tests can only be ran _after_ we publish
|
|
|
|
# the current SDK version, since it is required by the Docker build. And (2) the
|
|
|
|
# tests (currently) aren't reliable enough to run as part of every push to master.
|
|
|
|
#
|
|
|
|
# So instead we run the ~daily on master. Where we know the current SDK version
|
|
|
|
# will have been published.
|
|
|
|
.PHONY: test_containers_cron
|
2020-05-05 23:00:02 +02:00
|
|
|
test_containers_cron:
|
2020-04-30 21:52:05 +02:00
|
|
|
$(call STEP_MESSAGE)
|
|
|
|
./scripts/build-docker.sh ${VERSION} --test
|
|
|
|
|
2017-09-28 20:53:08 +02:00
|
|
|
# The travis_* targets are entrypoints for CI.
|
2017-11-12 01:20:56 +01:00
|
|
|
.PHONY: travis_cron travis_push travis_pull_request travis_api
|
2020-06-17 19:26:56 +02:00
|
|
|
travis_cron: all
|
2018-03-06 23:36:50 +01:00
|
|
|
travis_push: only_build publish_tgz only_test publish_packages
|
2017-09-28 20:53:08 +02:00
|
|
|
travis_pull_request: all
|
|
|
|
travis_api: all
|