diff --git a/.ci-mgmt.yaml b/.ci-mgmt.yaml index 8706662..a85cfc6 100644 --- a/.ci-mgmt.yaml +++ b/.ci-mgmt.yaml @@ -9,21 +9,21 @@ gcp: true sdkModuleDir: sdk/go/dockerbuild parallel: 3 esc: - enabled: true + enabled: true envOverride: - AWS_REGION: us-west-2 - PULUMI_API: "https://api.pulumi-staging.io" - ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e - ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1 - ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7 - ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }} - AZURE_LOCATION: westus - DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }} - GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com - GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci - GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci - GOOGLE_PROJECT: pulumi-ci-gcp-provider - GOOGLE_PROJECT_NUMBER: 895284651812 - GOOGLE_REGION: us-central1 - GOOGLE_ZONE: us-central1-a - DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }} + AWS_REGION: us-west-2 + PULUMI_API: "https://api.pulumi-staging.io" + ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e + ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1 + ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7 + ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }} + AZURE_LOCATION: westus + DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }} + GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com + GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci + GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci + GOOGLE_PROJECT: pulumi-ci-gcp-provider + GOOGLE_PROJECT_NUMBER: 895284651812 + GOOGLE_REGION: us-central1 + GOOGLE_ZONE: us-central1-a + DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }} diff --git a/.config/mise.lock b/.config/mise.lock new file mode 100644 index 0000000..7a12451 --- /dev/null +++ b/.config/mise.lock @@ -0,0 +1,45 @@ +[[tools.dotnet]] +version = "8.0.414" +backend = "asdf:dotnet" + +[[tools."github:pulumi/pulumictl"]] +version = "0.0.50" +backend = "github:pulumi/pulumictl" + +[tools."github:pulumi/pulumictl".platforms.linux-x64] +checksum = "blake3:c128dd74993f779c613296fe7cd21c20cbd323f24e59cb76e007620660b60348" +size = 27744219 +url = "https://github.com/pulumi/pulumictl/releases/download/v0.0.50/pulumictl-v0.0.50-linux-amd64.tar.gz" + +[[tools."github:pulumi/schema-tools"]] +version = "0.6.0" +backend = "github:pulumi/schema-tools" + +[tools."github:pulumi/schema-tools".platforms.linux-x64] +checksum = "blake3:82dfe616fee18b4258f6e3d2dc3c4e9f14afd43a0a4cc33eff2d2a04088d6ca3" +size = 14282746 +url = "https://github.com/pulumi/schema-tools/releases/download/v0.6.0/schema-tools-v0.6.0-linux-amd64.tar.gz" + +[[tools.go]] +version = "1.21.13" +backend = "core:go" + +[[tools.gradle]] +version = "7.6.6" +backend = "aqua:gradle/gradle" + +[[tools.java]] +version = "corretto-11.0.28.6.1" +backend = "core:java" + +[[tools.node]] +version = "20.19.5" +backend = "core:node" + +[[tools.pulumi]] +version = "3.198.0" +backend = "aqua:pulumi/pulumi" + +[[tools.python]] +version = "3.11.8" +backend = "core:python" diff --git a/.config/mise.test.toml b/.config/mise.test.toml new file mode 100644 index 0000000..ce00eb5 --- /dev/null +++ b/.config/mise.test.toml @@ -0,0 +1,7 @@ +# WARNING: This file is autogenerated - changes will be overwritten when regenerated by https://github.com/pulumi/ci-mgmt + +# Overrides tool versions for test workflows + +[tools] +# always use pulumi latest for tests +pulumi = "latest" diff --git a/.config/mise.toml b/.config/mise.toml new file mode 100644 index 0000000..3409ce5 --- /dev/null +++ b/.config/mise.toml @@ -0,0 +1,26 @@ +# WARNING: This file is autogenerated - changes will be overwritten when regenerated by https://github.com/pulumi/ci-mgmt +# You can create your own root-level mise.toml file to override/augment this. See https://mise.jdx.dev/configuration.html + +[env] +_.source = "{{config_root}}/scripts/get-versions.sh" + +[tools] + +# Runtimes +# TODO: we may not need `get_env` once https://github.com/jdx/mise/discussions/6339 is fixed +go = "{{ get_env(name='MISE_GO_VERSION', default='latest') }}" +node = '20' +python = '3.11.8' +dotnet = '8.0' +# Corretto version used as Java SE/OpenJDK version no longer offered +java = 'corretto-11' + +# Executable tools +pulumi = "{{ get_env(name='MISE_PULUMI_VERSION', default='latest') }}" +"github:pulumi/pulumictl" = 'latest' +"github:pulumi/schema-tools" = "latest" +gradle = '7.6' + +[settings] +experimental = true # Required for Go binaries (e.g. pulumictl). +lockfile = true diff --git a/mise.toml b/mise.toml deleted file mode 100644 index 630a593..0000000 --- a/mise.toml +++ /dev/null @@ -1,19 +0,0 @@ -# WARNING: This file is autogenerated - changes will be overwritten when regenerated by https://github.com/pulumi/ci-mgmt - -[tools] - -# Runtimes -go = '1.21' -node = '20' -python = '3.11.8' -dotnet = '8.0' -# Corretto version used as Java SE/OpenJDK version no longer offered -java = 'corretto-11' - -# Executable tools -pulumi = 'latest' -"go:github.com/pulumi/pulumictl/cmd/pulumictl" = 'latest' -gradle = '7.6' - -[settings] -experimental = true # Required for Go binaries (e.g. pulumictl). diff --git a/scripts/get-versions.sh b/scripts/get-versions.sh new file mode 100755 index 0000000..1c231f5 --- /dev/null +++ b/scripts/get-versions.sh @@ -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="." +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 "MISE_PULUMI_VERSION=$raw_version" +export MISE_PULUMI_VERSION=$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 "MISE_GO_VERSION=$go_version" +export MISE_GO_VERSION=$go_version