chore: make ci-mgmt
This commit is contained in:
75
Makefile
75
Makefile
@@ -1,13 +1,12 @@
|
||||
# WARNING: This file is autogenerated - changes will be overwritten when regenerated by https://github.com/pulumi/ci-mgmt
|
||||
|
||||
PACK := incus
|
||||
ORG := nimbus
|
||||
PROJECT := git.kalinow.ski/$(ORG)/pulumi-$(PACK)
|
||||
ORG := kiterun
|
||||
PROJECT := github.com/$(ORG)/pulumi-$(PACK)
|
||||
PROVIDER_PATH := provider
|
||||
VERSION_PATH := $(PROVIDER_PATH)/pkg/version.Version
|
||||
CODEGEN := pulumi-tfgen-$(PACK)
|
||||
PROVIDER := pulumi-resource-$(PACK)
|
||||
JAVA_GEN := pulumi-java-gen
|
||||
TESTPARALLELISM := 10
|
||||
GOTESTARGS := ""
|
||||
WORKING_DIR := $(shell pwd)
|
||||
@@ -41,19 +40,36 @@ LDFLAGS=$(LDFLAGS_PROJ_VERSION) $(LDFLAGS_UPSTREAM_VERSION) $(LDFLAGS_EXTRAS) $(
|
||||
_ := $(shell mkdir -p .make bin .pulumi/bin)
|
||||
|
||||
# Build the provider and all SDKs and install ready for testing
|
||||
build: install_plugins provider build_sdks install_sdks
|
||||
build: .make/mise_install provider build_sdks install_sdks
|
||||
build: | mise_env
|
||||
|
||||
# Keep aliases for old targets to ensure backwards compatibility
|
||||
development: build
|
||||
only_build: build
|
||||
# Prepare the workspace for building the provider and SDKs
|
||||
# Importantly this is run by CI ahead of restoring the bin directory and resuming SDK builds
|
||||
prepare_local_workspace: install_plugins upstream
|
||||
prepare_local_workspace: .make/mise_install upstream
|
||||
prepare_local_workspace: | mise_env
|
||||
# Creates all generated files which need to be committed
|
||||
generate: generate_sdks schema
|
||||
generate_sdks: generate_go generate_nodejs
|
||||
build_sdks: build_go build_nodejs
|
||||
install_sdks: install_go_sdk install_nodejs_sdk
|
||||
.PHONY: development only_build build generate generate_sdks build_sdks install_sdks
|
||||
.PHONY: development only_build build generate generate_sdks build_sdks install_sdks mise_install mise_env
|
||||
|
||||
# Installs all necessary tools with mise and records completion in a sentinel
|
||||
# file so dependent targets can participate in make's caching behaviour. The
|
||||
# environment is refreshed via an order-only prerequisite so it still runs on
|
||||
# every invocation without invalidating the sentinel.
|
||||
mise_install: .make/mise_install | mise_env
|
||||
|
||||
mise_env:
|
||||
@mise env -q > /dev/null
|
||||
|
||||
.make/mise_install:
|
||||
@mise install -q
|
||||
@touch $@
|
||||
|
||||
|
||||
help:
|
||||
@echo "Usage: make [target]"
|
||||
@@ -80,7 +96,7 @@ help:
|
||||
@echo ""
|
||||
@echo "Internal Targets (automatically run as dependencies of other targets)"
|
||||
@echo " prepare_local_workspace Prepare for building"
|
||||
@echo " install_plugins Install plugin dependencies"
|
||||
@echo " mise_install Install tools with mise"
|
||||
@echo " upstream Initialize the upstream submodule, if present"
|
||||
@echo ""
|
||||
@echo "Language-Specific Targets"
|
||||
@@ -88,7 +104,7 @@ help:
|
||||
@echo " build_[language] Build the SDK to check correctness"
|
||||
@echo " install_[language]_sdk Install the SDK ready for testing"
|
||||
@echo ""
|
||||
@echo " [language] = dotnet go nodejs python"
|
||||
@echo " [language] = go nodejs"
|
||||
@echo ""
|
||||
.PHONY: help
|
||||
|
||||
@@ -98,8 +114,8 @@ GEN_ENVS := PULUMI_HOME=$(GEN_PULUMI_HOME) PULUMI_CONVERT_EXAMPLES_CACHE_DIR=$(G
|
||||
|
||||
generate_dotnet: .make/generate_dotnet
|
||||
build_dotnet: .make/build_dotnet
|
||||
.make/generate_dotnet: export PATH := $(WORKING_DIR)/.pulumi/bin:$(PATH)
|
||||
.make/generate_dotnet: .make/install_plugins bin/$(CODEGEN)
|
||||
.make/generate_dotnet: .make/mise_install bin/$(CODEGEN)
|
||||
.make/generate_dotnet: | mise_env
|
||||
$(GEN_ENVS) $(WORKING_DIR)/bin/$(CODEGEN) dotnet --out sdk/dotnet/
|
||||
cd sdk/dotnet/ && \
|
||||
printf "module fake_dotnet_module // Exclude this directory from Go tools\n\ngo 1.17\n" > go.mod && \
|
||||
@@ -112,8 +128,8 @@ build_dotnet: .make/build_dotnet
|
||||
|
||||
generate_go: .make/generate_go
|
||||
build_go: .make/build_go
|
||||
.make/generate_go: export PATH := $(WORKING_DIR)/.pulumi/bin:$(PATH)
|
||||
.make/generate_go: .make/install_plugins bin/$(CODEGEN)
|
||||
.make/generate_go: .make/mise_install bin/$(CODEGEN)
|
||||
.make/generate_go: | mise_env
|
||||
$(GEN_ENVS) $(WORKING_DIR)/bin/$(CODEGEN) go --out sdk/go/
|
||||
@touch $@
|
||||
.make/build_go: .make/generate_go
|
||||
@@ -123,10 +139,10 @@ build_go: .make/build_go
|
||||
|
||||
generate_java: .make/generate_java
|
||||
build_java: .make/build_java
|
||||
.make/generate_java: export PATH := $(WORKING_DIR)/.pulumi/bin:$(PATH)
|
||||
.make/generate_java: PACKAGE_VERSION := $(PROVIDER_VERSION)
|
||||
.make/generate_java: .make/install_plugins bin/pulumi-java-gen .make/schema
|
||||
PULUMI_HOME=$(GEN_PULUMI_HOME) PULUMI_CONVERT_EXAMPLES_CACHE_DIR=$(GEN_PULUMI_CONVERT_EXAMPLES_CACHE_DIR) bin/$(JAVA_GEN) generate --schema provider/cmd/$(PROVIDER)/schema.json --out sdk/java --build gradle-nexus
|
||||
.make/generate_java: .make/mise_install bin/$(CODEGEN)
|
||||
.make/generate_java: | mise_env
|
||||
$(GEN_ENVS) $(WORKING_DIR)/bin/$(CODEGEN) java --out sdk/java/
|
||||
printf "module fake_java_module // Exclude this directory from Go tools\n\ngo 1.17\n" > sdk/java/go.mod
|
||||
@touch $@
|
||||
.make/build_java: PACKAGE_VERSION := $(PROVIDER_VERSION)
|
||||
@@ -139,23 +155,23 @@ build_java: .make/build_java
|
||||
|
||||
generate_nodejs: .make/generate_nodejs
|
||||
build_nodejs: .make/build_nodejs
|
||||
.make/generate_nodejs: export PATH := $(WORKING_DIR)/.pulumi/bin:$(PATH)
|
||||
.make/generate_nodejs: .make/install_plugins bin/$(CODEGEN)
|
||||
.make/generate_nodejs: .make/mise_install bin/$(CODEGEN)
|
||||
.make/generate_nodejs: | mise_env
|
||||
$(GEN_ENVS) $(WORKING_DIR)/bin/$(CODEGEN) nodejs --out sdk/nodejs/
|
||||
printf "module fake_nodejs_module // Exclude this directory from Go tools\n\ngo 1.17\n" > sdk/nodejs/go.mod
|
||||
@touch $@
|
||||
.make/build_nodejs: .make/generate_nodejs
|
||||
cd sdk/nodejs/ && \
|
||||
pnpm install && \
|
||||
pnpm tsc && \
|
||||
cp ../../README.md ../../LICENSE* package.json pnpm-lock.yaml ./bin/
|
||||
yarn install && \
|
||||
yarn run tsc && \
|
||||
cp ../../README.md ../../LICENSE package.json yarn.lock ./bin/
|
||||
@touch $@
|
||||
.PHONY: generate_nodejs build_nodejs
|
||||
|
||||
generate_python: .make/generate_python
|
||||
build_python: .make/build_python
|
||||
.make/generate_python: export PATH := $(WORKING_DIR)/.pulumi/bin:$(PATH)
|
||||
.make/generate_python: .make/install_plugins bin/$(CODEGEN)
|
||||
.make/generate_python: .make/mise_install bin/$(CODEGEN)
|
||||
.make/generate_python: | mise_env
|
||||
$(GEN_ENVS) $(WORKING_DIR)/bin/$(CODEGEN) python --out sdk/python/
|
||||
printf "module fake_python_module // Exclude this directory from Go tools\n\ngo 1.17\n" > sdk/python/go.mod
|
||||
cp README.md sdk/python/
|
||||
@@ -175,6 +191,7 @@ clean:
|
||||
rm -rf sdk/{dotnet,nodejs,go,python}
|
||||
rm -rf bin/*
|
||||
rm -rf .make/*
|
||||
rm -rf "$(GEN_PULUMI_CONVERT_EXAMPLES_CACHE_DIR)"
|
||||
if dotnet nuget list source | grep "$(WORKING_DIR)/nuget"; then \
|
||||
dotnet nuget remove source "$(WORKING_DIR)/nuget" \
|
||||
; fi
|
||||
@@ -192,7 +209,7 @@ install_go_sdk:
|
||||
install_java_sdk:
|
||||
install_nodejs_sdk: .make/install_nodejs_sdk
|
||||
.make/install_nodejs_sdk: .make/build_nodejs
|
||||
pnpm link --global $(WORKING_DIR)/sdk/nodejs/bin
|
||||
yarn link --cwd $(WORKING_DIR)/sdk/nodejs/bin
|
||||
@touch $@
|
||||
install_python_sdk:
|
||||
.PHONY: install_dotnet_sdk install_go_sdk install_java_sdk install_nodejs_sdk install_python_sdk
|
||||
@@ -235,12 +252,12 @@ schema: .make/schema
|
||||
# This does actually have dependencies, but we're keeping it around for backwards compatibility for now
|
||||
tfgen_no_deps: .make/schema
|
||||
.make/schema: export PULUMI_HOME := $(WORKING_DIR)/.pulumi
|
||||
.make/schema: export PATH := $(WORKING_DIR)/.pulumi/bin:$(PATH)
|
||||
.make/schema: export PULUMI_CONVERT := $(PULUMI_CONVERT)
|
||||
.make/schema: export PULUMI_CONVERT_EXAMPLES_CACHE_DIR := $(WORKING_DIR)/.pulumi/examples-cache
|
||||
.make/schema: export PULUMI_DISABLE_AUTOMATIC_PLUGIN_ACQUISITION := $(PULUMI_CONVERT)
|
||||
.make/schema: export PULUMI_MISSING_DOCS_ERROR := $(PULUMI_MISSING_DOCS_ERROR)
|
||||
.make/schema: bin/$(CODEGEN) .make/install_plugins .make/upstream
|
||||
.make/schema: bin/$(CODEGEN) .make/mise_install .make/upstream
|
||||
.make/schema: | mise_env
|
||||
$(WORKING_DIR)/bin/$(CODEGEN) schema --out provider/cmd/$(PROVIDER)
|
||||
(cd provider && VERSION=$(PROVIDER_VERSION) go generate cmd/$(PROVIDER)/main.go)
|
||||
@touch $@
|
||||
@@ -257,13 +274,6 @@ upstream: .make/upstream
|
||||
@touch $@
|
||||
.PHONY: upstream
|
||||
|
||||
bin/pulumi-java-gen: PULUMI_JAVA_VERSION := $(shell cat .pulumi-java-gen.version)
|
||||
bin/pulumi-java-gen: PLAT := $(shell go version | sed -En "s/go version go.* (.*)\/(.*)/\1-\2/p")
|
||||
bin/pulumi-java-gen: PULUMI_JAVA_URL := "https://github.com/pulumi/pulumi-java/releases/download/v$(PULUMI_JAVA_VERSION)/pulumi-language-java-v$(PULUMI_JAVA_VERSION)-$(PLAT).tar.gz"
|
||||
bin/pulumi-java-gen:
|
||||
wget -q -O - "$(PULUMI_JAVA_URL)" | tar -xzf - -C $(WORKING_DIR)/bin pulumi-java-gen
|
||||
@touch bin/pulumi-language-java
|
||||
|
||||
# To make an immediately observable change to .ci-mgmt.yaml:
|
||||
#
|
||||
# - Edit .ci-mgmt.yaml
|
||||
@@ -278,7 +288,6 @@ debug_tfgen:
|
||||
dlv --listen=:2345 --headless=true --api-version=2 exec $(WORKING_DIR)/bin/$(CODEGEN) -- schema --out provider/cmd/$(PROVIDER)
|
||||
.PHONY: debug_tfgen
|
||||
|
||||
include scripts/plugins.mk
|
||||
include scripts/crossbuild.mk
|
||||
|
||||
# Permit providers to extend the Makefile with provider-specific Make includes.
|
||||
|
||||
Reference in New Issue
Block a user