@@ -17,7 +17,7 @@ PULUMI_MISSING_DOCS_ERROR := true
17
17
18
18
# Override during CI using `make [TARGET] PROVIDER_VERSION=""` or by setting a PROVIDER_VERSION environment variable
19
19
# Local & branch builds will just used this fixed default version unless specified
20
- PROVIDER_VERSION ?= 1 .0.0-alpha.0+dev
20
+ PROVIDER_VERSION ?= 2 .0.0-alpha.0+dev
21
21
22
22
# Check version doesn't start with a "v" - this is a common mistake
23
23
ifeq ($(shell echo $(PROVIDER_VERSION ) | cut -c1) ,v)
@@ -143,7 +143,6 @@ build_nodejs: .make/build_nodejs
143
143
.make/generate_nodejs : .make/install_plugins bin/$(CODEGEN )
144
144
$(GEN_ENVS ) $(WORKING_DIR ) /bin/$(CODEGEN ) nodejs --out sdk/nodejs/
145
145
printf " module fake_nodejs_module // Exclude this directory from Go tools\n\ngo 1.17\n" > sdk/nodejs/go.mod
146
- sed -i ' s/$${VERSION}/$(PROVIDER_VERSION)/g' sdk/nodejs/package.json
147
146
@touch $@
148
147
.make/build_nodejs : .make/generate_nodejs
149
148
cd sdk/nodejs/ && \
@@ -160,7 +159,6 @@ build_python: .make/build_python
160
159
$(GEN_ENVS ) $(WORKING_DIR ) /bin/$(CODEGEN ) python --out sdk/python/
161
160
printf " module fake_python_module // Exclude this directory from Go tools\n\ngo 1.17\n" > sdk/python/go.mod
162
161
cp README.md sdk/python/
163
- sed -i -r ' s/(version = ")[0-9]+.[0-9]+.[0-9]+(")/\1$(PROVIDER_VERSION)\2/g' sdk/python/pyproject.toml
164
162
@touch $@
165
163
.make/build_python : .make/generate_python
166
164
cd sdk/python/ && \
@@ -199,15 +197,6 @@ install_nodejs_sdk: .make/install_nodejs_sdk
199
197
install_python_sdk :
200
198
.PHONY : install_dotnet_sdk install_go_sdk install_java_sdk install_nodejs_sdk install_python_sdk
201
199
202
- # Install Pulumi plugins required for CODEGEN to resolve references
203
- install_plugins : .make/install_plugins
204
- .make/install_plugins : export PULUMI_HOME := $(WORKING_DIR ) /.pulumi
205
- .make/install_plugins : export PATH := $(WORKING_DIR ) /.pulumi/bin:$(PATH )
206
- .make/install_plugins : .pulumi/bin/pulumi
207
- .pulumi/bin/pulumi plugin install converter terraform 1.0.16
208
- @touch $@
209
- .PHONY : install_plugins
210
-
211
200
lint_provider : provider
212
201
cd provider && golangci-lint run --path-prefix provider -c ../.golangci.yml
213
202
# `lint_provider.fix` is a utility target meant to be run manually
@@ -284,110 +273,13 @@ ci-mgmt: .ci-mgmt.yaml
284
273
go run github.com/pulumi/ci-mgmt/provider-ci@master generate
285
274
.PHONY : ci-mgmt
286
275
287
- # Because some codegen depends on the version of the CLI used, we install a local CLI
288
- # version pinned to the same version as `provider/go.mod`.
289
- #
290
- # This logic compares the version of .pulumi/bin/pulumi already installed. If it matches
291
- # the desired version, we just print. Otherwise we (re)install pulumi at the desired
292
- # version.
293
- .pulumi/bin/pulumi : .pulumi/version
294
- @if [ -x .pulumi/bin/pulumi ] && [ " v$$ (cat .pulumi/version)" = " $$ (.pulumi/bin/pulumi version)" ]; then \
295
- echo " pulumi/bin/pulumi version: v$$ (cat .pulumi/version)" ; \
296
- touch $@ ; \
297
- else \
298
- curl -fsSL https://get.pulumi.com | \
299
- HOME=$(WORKING_DIR ) sh -s -- --version " $$ (cat .pulumi/version)" ; \
300
- fi
301
-
302
- # Compute the version of Pulumi to use by inspecting the Go dependencies of the provider.
303
- .pulumi/version : provider/go.mod
304
- cd provider && go list -f " {{slice .Version 1}}" -m github.com/pulumi/pulumi/pkg/v3 | tee ../$@
305
-
306
276
# Start debug server for tfgen
307
277
debug_tfgen :
308
278
dlv --listen=:2345 --headless=true --api-version=2 exec $(WORKING_DIR ) /bin/$(CODEGEN ) -- schema --out provider/cmd/$(PROVIDER )
309
279
.PHONY : debug_tfgen
310
280
311
- # Provider cross-platform build & packaging
312
-
313
- # Set these variables to enable signing of the windows binary
314
- AZURE_SIGNING_CLIENT_ID ?=
315
- AZURE_SIGNING_CLIENT_SECRET ?=
316
- AZURE_SIGNING_TENANT_ID ?=
317
- AZURE_SIGNING_KEY_VAULT_URI ?=
318
- SKIP_SIGNING ?=
319
-
320
- # These targets assume that the schema-embed.json exists - it's generated by tfgen.
321
- # We disable CGO to ensure that the binary is statically linked.
322
- bin/linux-amd64/$(PROVIDER ) : GOOS := linux
323
- bin/linux-amd64/$(PROVIDER ) : GOARCH := amd64
324
- bin/linux-arm64/$(PROVIDER ) : GOOS := linux
325
- bin/linux-arm64/$(PROVIDER ) : GOARCH := arm64
326
- bin/darwin-amd64/$(PROVIDER ) : GOOS := darwin
327
- bin/darwin-amd64/$(PROVIDER ) : GOARCH := amd64
328
- bin/darwin-arm64/$(PROVIDER ) : GOOS := darwin
329
- bin/darwin-arm64/$(PROVIDER ) : GOARCH := arm64
330
- bin/windows-amd64/$(PROVIDER ) .exe : GOOS := windows
331
- bin/windows-amd64/$(PROVIDER ) .exe : GOARCH := amd64
332
- bin/% /$(PROVIDER ) bin/% /$(PROVIDER ) .exe : bin/jsign-6.0.jar
333
- $(call build_provider_cmd,$(GOOS ) ,$(GOARCH ) ,$(WORKING_DIR ) /$@ )
334
-
335
- @# Only sign windows binary if fully configured.
336
- @# Test variables set by joining with | between and looking for || showing at least one variable is empty.
337
- @# Move the binary to a temporary location and sign it there to avoid the target being up-to-date if signing fails.
338
- @set -e; \
339
- if [[ "${GOOS}-${GOARCH}" = "windows-amd64" && "${SKIP_SIGNING}" != "true" ]]; then \
340
- if [[ "|${AZURE_SIGNING_CLIENT_ID}|${AZURE_SIGNING_CLIENT_SECRET}|${AZURE_SIGNING_TENANT_ID}|${AZURE_SIGNING_KEY_VAULT_URI}|" == *"||"* ]]; then \
341
- echo "Can't sign windows binaries as required configuration not set: AZURE_SIGNING_CLIENT_ID, AZURE_SIGNING_CLIENT_SECRET, AZURE_SIGNING_TENANT_ID, AZURE_SIGNING_KEY_VAULT_URI"; \
342
- echo "To rebuild with signing delete the unsigned $@ and rebuild with the fixed configuration"; \
343
- if [[ "${CI}" == "true" ]]; then exit 1; fi; \
344
- else \
345
-
346
- az login --service-principal \
347
- --username "${AZURE_SIGNING_CLIENT_ID}" \
348
- --password "${AZURE_SIGNING_CLIENT_SECRET}" \
349
- --tenant "${AZURE_SIGNING_TENANT_ID}" \
350
- --output none; \
351
- ACCESS_TOKEN=$$(az account get-access-token --resource "https://vault.azure.net" | jq -r .accessToken); \
352
- java -jar bin/jsign-6.0.jar \
353
- --storetype AZUREKEYVAULT \
354
- --keystore "PulumiCodeSigning" \
355
- --url "${AZURE_SIGNING_KEY_VAULT_URI}" \
356
- --storepass "$${ACCESS_TOKEN}" \
357
-
358
-
359
- az logout; \
360
- fi; \
361
- fi
362
-
363
- bin/jsign-6.0.jar :
364
- wget https://github.com/ebourg/jsign/releases/download/6.0/jsign-6.0.jar --output-document=bin/jsign-6.0.jar
365
-
366
- provider-linux-amd64 : bin/linux-amd64/$(PROVIDER )
367
- provider-linux-arm64 : bin/linux-arm64/$(PROVIDER )
368
- provider-darwin-amd64 : bin/darwin-amd64/$(PROVIDER )
369
- provider-darwin-arm64 : bin/darwin-arm64/$(PROVIDER )
370
- provider-windows-amd64 : bin/windows-amd64/$(PROVIDER ) .exe
371
- .PHONY : provider-linux-amd64 provider-linux-arm64 provider-darwin-amd64 provider-darwin-arm64 provider-windows-amd64
372
-
373
- bin/$(PROVIDER ) -v$(PROVIDER_VERSION ) -linux-amd64.tar.gz : bin/linux-amd64/$(PROVIDER )
374
- bin/$(PROVIDER ) -v$(PROVIDER_VERSION ) -linux-arm64.tar.gz : bin/linux-arm64/$(PROVIDER )
375
- bin/$(PROVIDER ) -v$(PROVIDER_VERSION ) -darwin-amd64.tar.gz : bin/darwin-amd64/$(PROVIDER )
376
- bin/$(PROVIDER ) -v$(PROVIDER_VERSION ) -darwin-arm64.tar.gz : bin/darwin-arm64/$(PROVIDER )
377
- bin/$(PROVIDER ) -v$(PROVIDER_VERSION ) -windows-amd64.tar.gz : bin/windows-amd64/$(PROVIDER ) .exe
378
- bin/$(PROVIDER ) -v$(PROVIDER_VERSION ) -% .tar.gz :
379
- @mkdir -p dist
380
- @# $< is the last dependency (the binary path from above) e.g. bin/linux-amd64/pulumi-resource-xyz
381
- @# $@ is the current target e.g. bin/pulumi-resource-xyz-v1.2.3-linux-amd64.tar.gz
382
- tar --gzip -cf $@ README.md LICENSE -C $$(dirname $< ) .
383
-
384
- provider_dist-linux-amd64 : bin/$(PROVIDER ) -v$(PROVIDER_VERSION ) -linux-amd64.tar.gz
385
- provider_dist-linux-arm64 : bin/$(PROVIDER ) -v$(PROVIDER_VERSION ) -linux-arm64.tar.gz
386
- provider_dist-darwin-amd64 : bin/$(PROVIDER ) -v$(PROVIDER_VERSION ) -darwin-amd64.tar.gz
387
- provider_dist-darwin-arm64 : bin/$(PROVIDER ) -v$(PROVIDER_VERSION ) -darwin-arm64.tar.gz
388
- provider_dist-windows-amd64 : bin/$(PROVIDER ) -v$(PROVIDER_VERSION ) -windows-amd64.tar.gz
389
- provider_dist : provider_dist-linux-amd64 provider_dist-linux-arm64 provider_dist-darwin-amd64 provider_dist-darwin-arm64 provider_dist-windows-amd64
390
- .PHONY : provider_dist-linux-amd64 provider_dist-linux-arm64 provider_dist-darwin-amd64 provider_dist-darwin-arm64 provider_dist-windows-amd64 provider_dist
281
+ include scripts/plugins.mk
282
+ include scripts/crossbuild.mk
391
283
392
284
# Permit providers to extend the Makefile with provider-specific Make includes.
393
285
include $(wildcard .mk/* .mk)
0 commit comments