chore: make ci-mgmt
This commit is contained in:
@@ -19,6 +19,8 @@ bin/darwin-arm64/$(PROVIDER): GOOS := darwin
|
||||
bin/darwin-arm64/$(PROVIDER): GOARCH := arm64
|
||||
bin/windows-amd64/$(PROVIDER).exe: GOOS := windows
|
||||
bin/windows-amd64/$(PROVIDER).exe: GOARCH := amd64
|
||||
bin/windows-arm64/$(PROVIDER).exe: GOOS := windows
|
||||
bin/windows-arm64/$(PROVIDER).exe: GOARCH := arm64
|
||||
bin/%/$(PROVIDER) bin/%/$(PROVIDER).exe: bin/jsign-6.0.jar
|
||||
$(call build_provider_cmd,$(GOOS),$(GOARCH),$(WORKING_DIR)/$@)
|
||||
|
||||
@@ -26,7 +28,7 @@ bin/%/$(PROVIDER) bin/%/$(PROVIDER).exe: bin/jsign-6.0.jar
|
||||
@# Test variables set by joining with | between and looking for || showing at least one variable is empty.
|
||||
@# Move the binary to a temporary location and sign it there to avoid the target being up-to-date if signing fails.
|
||||
@set -e; \
|
||||
if [[ "${GOOS}-${GOARCH}" = "windows-amd64" && "${SKIP_SIGNING}" != "true" ]]; then \
|
||||
if [[ "${GOOS}" = "windows" && "${SKIP_SIGNING}" != "true" ]]; then \
|
||||
if [[ "|${AZURE_SIGNING_CLIENT_ID}|${AZURE_SIGNING_CLIENT_SECRET}|${AZURE_SIGNING_TENANT_ID}|${AZURE_SIGNING_KEY_VAULT_URI}|" == *"||"* ]]; then \
|
||||
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"; \
|
||||
echo "To rebuild with signing delete the unsigned $@ and rebuild with the fixed configuration"; \
|
||||
@@ -58,13 +60,15 @@ provider-linux-arm64: bin/linux-arm64/$(PROVIDER)
|
||||
provider-darwin-amd64: bin/darwin-amd64/$(PROVIDER)
|
||||
provider-darwin-arm64: bin/darwin-arm64/$(PROVIDER)
|
||||
provider-windows-amd64: bin/windows-amd64/$(PROVIDER).exe
|
||||
.PHONY: provider-linux-amd64 provider-linux-arm64 provider-darwin-amd64 provider-darwin-arm64 provider-windows-amd64
|
||||
provider-windows-arm64: bin/windows-arm64/$(PROVIDER).exe
|
||||
.PHONY: provider-linux-amd64 provider-linux-arm64 provider-darwin-amd64 provider-darwin-arm64 provider-windows-amd64 provider-windows-arm64
|
||||
|
||||
bin/$(PROVIDER)-v$(PROVIDER_VERSION)-linux-amd64.tar.gz: bin/linux-amd64/$(PROVIDER)
|
||||
bin/$(PROVIDER)-v$(PROVIDER_VERSION)-linux-arm64.tar.gz: bin/linux-arm64/$(PROVIDER)
|
||||
bin/$(PROVIDER)-v$(PROVIDER_VERSION)-darwin-amd64.tar.gz: bin/darwin-amd64/$(PROVIDER)
|
||||
bin/$(PROVIDER)-v$(PROVIDER_VERSION)-darwin-arm64.tar.gz: bin/darwin-arm64/$(PROVIDER)
|
||||
bin/$(PROVIDER)-v$(PROVIDER_VERSION)-windows-amd64.tar.gz: bin/windows-amd64/$(PROVIDER).exe
|
||||
bin/$(PROVIDER)-v$(PROVIDER_VERSION)-windows-arm64.tar.gz: bin/windows-arm64/$(PROVIDER).exe
|
||||
bin/$(PROVIDER)-v$(PROVIDER_VERSION)-%.tar.gz:
|
||||
@mkdir -p dist
|
||||
@# $< is the last dependency (the binary path from above) e.g. bin/linux-amd64/pulumi-resource-xyz
|
||||
@@ -76,5 +80,6 @@ provider_dist-linux-arm64: bin/$(PROVIDER)-v$(PROVIDER_VERSION)-linux-arm64.tar.
|
||||
provider_dist-darwin-amd64: bin/$(PROVIDER)-v$(PROVIDER_VERSION)-darwin-amd64.tar.gz
|
||||
provider_dist-darwin-arm64: bin/$(PROVIDER)-v$(PROVIDER_VERSION)-darwin-arm64.tar.gz
|
||||
provider_dist-windows-amd64: bin/$(PROVIDER)-v$(PROVIDER_VERSION)-windows-amd64.tar.gz
|
||||
provider_dist-windows-arm64: bin/$(PROVIDER)-v$(PROVIDER_VERSION)-windows-arm64.tar.gz
|
||||
provider_dist: provider_dist-linux-amd64 provider_dist-linux-arm64 provider_dist-darwin-amd64 provider_dist-darwin-arm64 provider_dist-windows-amd64
|
||||
.PHONY: provider_dist-linux-amd64 provider_dist-linux-arm64 provider_dist-darwin-amd64 provider_dist-darwin-arm64 provider_dist-windows-amd64 provider_dist
|
||||
|
||||
55
scripts/get-versions.sh
Executable file
55
scripts/get-versions.sh
Executable file
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# This script can be simplified to use go when https://github.com/jdx/mise/discussions/6374 is fixed
|
||||
# e.g. go list -m -f '{{.GoVersion}}'
|
||||
|
||||
module_path="github.com/pulumi/pulumi/pkg/v3"
|
||||
go_mod_path="provider"
|
||||
gomod="go.mod"
|
||||
|
||||
if [[ "$go_mod_path" != "" && "$go_mod_path" != "." ]]; then
|
||||
gomod="$go_mod_path/$gomod"
|
||||
fi
|
||||
|
||||
if [[ ! -f "$gomod" ]]; then
|
||||
echo "missing $gomod" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
raw_version=$(awk -v module="$module_path" '
|
||||
$1 == module || $2 == module {
|
||||
for (i = 1; i <= NF; i++) {
|
||||
if ($i ~ /^v[0-9]/) {
|
||||
sub(/^v/, "", $i)
|
||||
print $i
|
||||
exit
|
||||
}
|
||||
}
|
||||
}
|
||||
' "$gomod")
|
||||
|
||||
if [[ -z "${raw_version:-}" ]]; then
|
||||
echo "failed to determine Pulumi version from $gomod" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "PULUMI_VERSION_MISE=$raw_version"
|
||||
export PULUMI_VERSION_MISE=$raw_version
|
||||
|
||||
# Prefer the toolchain directive if present, otherwise fall back to the `go` version line
|
||||
go_toolchain=$(awk '/^toolchain[[:space:]]+go[0-9]/{ print $2; exit }' "$gomod")
|
||||
|
||||
if [[ -n "${go_toolchain:-}" ]]; then
|
||||
go_version=${go_toolchain#go}
|
||||
else
|
||||
go_version=$(awk '/^go[[:space:]]+[0-9]/{ print $2; exit }' "$gomod")
|
||||
fi
|
||||
|
||||
if [[ -z "${go_version:-}" ]]; then
|
||||
echo "failed to determine Go version from $gomod" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "GO_VERSION_MISE=$go_version"
|
||||
export GO_VERSION_MISE=$go_version
|
||||
@@ -1,27 +0,0 @@
|
||||
# Install Pulumi and plugins required at build time.
|
||||
install_plugins: .make/install_plugins
|
||||
.make/install_plugins: export PULUMI_HOME := $(WORKING_DIR)/.pulumi
|
||||
.make/install_plugins: export PATH := $(WORKING_DIR)/.pulumi/bin:$(PATH)
|
||||
.make/install_plugins: .pulumi/bin/pulumi
|
||||
.pulumi/bin/pulumi plugin install converter terraform 1.0.16
|
||||
@touch $@
|
||||
.PHONY: install_plugins
|
||||
|
||||
# Because some codegen depends on the version of the CLI used, we install a local CLI
|
||||
# version pinned to the same version as the provider `go.mod`.
|
||||
#
|
||||
# This logic compares the version of .pulumi/bin/pulumi already installed. If it matches
|
||||
# the desired version, we just print. Otherwise we (re)install pulumi at the desired
|
||||
# version.
|
||||
.pulumi/bin/pulumi: .pulumi/version
|
||||
@if [ -x .pulumi/bin/pulumi ] && [ "v$$(cat .pulumi/version)" = "$$(.pulumi/bin/pulumi version)" ]; then \
|
||||
echo "pulumi/bin/pulumi version: v$$(cat .pulumi/version)"; \
|
||||
touch $@; \
|
||||
else \
|
||||
curl -fsSL https://get.pulumi.com | \
|
||||
HOME=$(WORKING_DIR) sh -s -- --version "$$(cat .pulumi/version)"; \
|
||||
fi
|
||||
|
||||
# Compute the version of Pulumi to use by inspecting the Go dependencies of the provider.
|
||||
.pulumi/version: provider/go.mod
|
||||
(cd provider && go list -f "{{slice .Version 1}}" -m github.com/pulumi/pulumi/pkg/v3) | tee $@
|
||||
Reference in New Issue
Block a user