diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index d3bef6b4..6a4fa787 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -102,6 +102,13 @@ jobs: run: make build_${{ matrix.language }} - name: Check worktree clean uses: pulumi/git-status-check-action@v1 + with: + allowed-changes: | + sdk/**/pulumi-plugin.json + sdk/dotnet/Pulumi.*.csproj + sdk/go/*/internal/pulumiUtilities.go + sdk/nodejs/package.json + sdk/python/pyproject.toml - name: Compress SDK folder run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} . - name: Upload artifacts diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 958ce930..5469c4d5 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -103,6 +103,13 @@ jobs: run: make build_${{ matrix.language }} - name: Check worktree clean uses: pulumi/git-status-check-action@v1 + with: + allowed-changes: | + sdk/**/pulumi-plugin.json + sdk/dotnet/Pulumi.*.csproj + sdk/go/*/internal/pulumiUtilities.go + sdk/nodejs/package.json + sdk/python/pyproject.toml - name: Compress SDK folder run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} . - name: Upload artifacts @@ -306,6 +313,42 @@ jobs: if: failure() name: Send Publish Failure To Slack uses: rtCamp/action-slack-notify@v2 + publish_go_sdk: + name: publish_go_sdk + needs: publish_sdk + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + tag: v0.0.46 + repo: pulumi/pulumictl + - id: version + uses: pulumi/provider-version-action@v1 + - name: Download Go SDK + uses: actions/download-artifact@v4 + with: + name: go-sdk.tar.gz + path: ${{ github.workspace }}/sdk/ + - name: Uncompress Go SDK + run: tar -zxf ${{ github.workspace }}/sdk/go.tar.gz -C + ${{ github.workspace }}/sdk/go + shell: bash + - uses: pulumi/publish-go-sdk-action@v1 + with: + repository: ${{ github.repository }} + base-ref: ${{ github.sha }} + source: sdk + path: sdk + version: ${{ steps.version.outputs.version }} + additive: false + # Avoid including other language SDKs & artifacts in the commit + files: | + go.* + go/** + !*.tar.gz test: name: test needs: build_sdk diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 794dbf68..d4d75153 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -102,6 +102,13 @@ jobs: run: make build_${{ matrix.language }} - name: Check worktree clean uses: pulumi/git-status-check-action@v1 + with: + allowed-changes: | + sdk/**/pulumi-plugin.json + sdk/dotnet/Pulumi.*.csproj + sdk/go/*/internal/pulumiUtilities.go + sdk/nodejs/package.json + sdk/python/pyproject.toml - name: Compress SDK folder run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} . - name: Upload artifacts @@ -333,9 +340,28 @@ jobs: repo: pulumi/pulumictl - id: version uses: pulumi/provider-version-action@v1 - - name: Add SDK version tag - run: git tag "sdk/v${{ steps.version.outputs.version }}" && git push origin - "sdk/v${{ steps.version.outputs.version }}" + - name: Download Go SDK + uses: actions/download-artifact@v4 + with: + name: go-sdk.tar.gz + path: ${{ github.workspace }}/sdk/ + - name: Uncompress Go SDK + run: tar -zxf ${{ github.workspace }}/sdk/go.tar.gz -C + ${{ github.workspace }}/sdk/go + shell: bash + - uses: pulumi/publish-go-sdk-action@v1 + with: + repository: ${{ github.repository }} + base-ref: ${{ github.sha }} + source: sdk + path: sdk + version: ${{ steps.version.outputs.version }} + additive: false + # Avoid including other language SDKs & artifacts in the commit + files: | + go.* + go/** + !*.tar.gz clean_up_release_labels: name: Clean up release labels diff --git a/.github/workflows/run-acceptance-tests.yml b/.github/workflows/run-acceptance-tests.yml index 045a9418..b9e4b001 100644 --- a/.github/workflows/run-acceptance-tests.yml +++ b/.github/workflows/run-acceptance-tests.yml @@ -112,6 +112,13 @@ jobs: run: make build_${{ matrix.language }} - name: Check worktree clean uses: pulumi/git-status-check-action@v1 + with: + allowed-changes: | + sdk/**/pulumi-plugin.json + sdk/dotnet/Pulumi.*.csproj + sdk/go/*/internal/pulumiUtilities.go + sdk/nodejs/package.json + sdk/python/pyproject.toml - name: Compress SDK folder run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} . - name: Upload artifacts diff --git a/provider/cmd/pulumi-resource-vsphere/schema.json b/provider/cmd/pulumi-resource-vsphere/schema.json index d23ea9e2..faab523f 100644 --- a/provider/cmd/pulumi-resource-vsphere/schema.json +++ b/provider/cmd/pulumi-resource-vsphere/schema.json @@ -20,12 +20,14 @@ "namespaces": { "vsphere": "VSphere" }, - "compatibility": "tfbridge20" + "compatibility": "tfbridge20", + "respectSchemaVersion": true }, "go": { "importBasePath": "github.com/pulumi/pulumi-vsphere/sdk/v4/go/vsphere", "generateResourceContainerTypes": true, - "generateExtraInputTypes": true + "generateExtraInputTypes": true, + "respectSchemaVersion": true }, "nodejs": { "packageDescription": "A Pulumi package for creating vsphere resources", @@ -40,7 +42,8 @@ "@types/node": "^10.9.2" }, "compatibility": "tfbridge20", - "disableUnionOutputTypes": true + "disableUnionOutputTypes": true, + "respectSchemaVersion": true }, "python": { "requires": { @@ -48,6 +51,7 @@ }, "readme": "\u003e This provider is a derived work of the [Terraform Provider](https://github.com/hashicorp/terraform-provider-vsphere)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-vsphere` repo](https://github.com/pulumi/pulumi-vsphere/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-vsphere` repo](https://github.com/hashicorp/terraform-provider-vsphere/issues).", "compatibility": "tfbridge20", + "respectSchemaVersion": true, "pyproject": { "enabled": true } diff --git a/provider/resources.go b/provider/resources.go index 1b52807e..fe1fef4c 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -181,12 +181,15 @@ func Provider() tfbridge.ProviderInfo { Overlay: &tfbridge.OverlayInfo{ Modules: map[string]*tfbridge.OverlayInfo{}, }, + RespectSchemaVersion: true, }, Python: (func() *tfbridge.PythonInfo { i := &tfbridge.PythonInfo{ + RespectSchemaVersion: true, Requires: map[string]string{ "pulumi": ">=3.0.0,<4.0.0", - }} + }, + } i.PyProject.Enabled = true return i })(), @@ -199,8 +202,10 @@ func Provider() tfbridge.ProviderInfo { vspherePkg, ), GenerateResourceContainerTypes: true, + RespectSchemaVersion: true, }, CSharp: &tfbridge.CSharpInfo{ + RespectSchemaVersion: true, PackageReferences: map[string]string{ "Pulumi": "3.*", }, diff --git a/sdk/dotnet/Pulumi.VSphere.csproj b/sdk/dotnet/Pulumi.VSphere.csproj index 320ec5cc..ec85d61c 100644 --- a/sdk/dotnet/Pulumi.VSphere.csproj +++ b/sdk/dotnet/Pulumi.VSphere.csproj @@ -9,6 +9,7 @@ https://pulumi.io https://github.com/pulumi/pulumi-vsphere logo.png + 4.0.0-alpha.0+dev net6.0 enable diff --git a/sdk/dotnet/pulumi-plugin.json b/sdk/dotnet/pulumi-plugin.json index 029b550c..f45fe14b 100644 --- a/sdk/dotnet/pulumi-plugin.json +++ b/sdk/dotnet/pulumi-plugin.json @@ -1,4 +1,5 @@ { "resource": true, - "name": "vsphere" + "name": "vsphere", + "version": "4.0.0-alpha.0+dev" } diff --git a/sdk/go/vsphere/internal/pulumiUtilities.go b/sdk/go/vsphere/internal/pulumiUtilities.go index 76ff9417..72358adb 100644 --- a/sdk/go/vsphere/internal/pulumiUtilities.go +++ b/sdk/go/vsphere/internal/pulumiUtilities.go @@ -165,7 +165,7 @@ func callPlainInner( func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOption { defaults := []pulumi.ResourceOption{} - version := SdkVersion + version := semver.MustParse("4.0.0-alpha.0+dev") if !version.Equals(semver.Version{}) { defaults = append(defaults, pulumi.Version(version.String())) } @@ -176,7 +176,7 @@ func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOptio func PkgInvokeDefaultOpts(opts []pulumi.InvokeOption) []pulumi.InvokeOption { defaults := []pulumi.InvokeOption{} - version := SdkVersion + version := semver.MustParse("4.0.0-alpha.0+dev") if !version.Equals(semver.Version{}) { defaults = append(defaults, pulumi.Version(version.String())) } diff --git a/sdk/go/vsphere/pulumi-plugin.json b/sdk/go/vsphere/pulumi-plugin.json index 029b550c..f45fe14b 100644 --- a/sdk/go/vsphere/pulumi-plugin.json +++ b/sdk/go/vsphere/pulumi-plugin.json @@ -1,4 +1,5 @@ { "resource": true, - "name": "vsphere" + "name": "vsphere", + "version": "4.0.0-alpha.0+dev" } diff --git a/sdk/nodejs/package.json b/sdk/nodejs/package.json index 7eed73e1..70612aab 100644 --- a/sdk/nodejs/package.json +++ b/sdk/nodejs/package.json @@ -1,6 +1,6 @@ { "name": "@pulumi/vsphere", - "version": "${VERSION}", + "version": "4.0.0-alpha.0+dev", "description": "A Pulumi package for creating vsphere resources", "keywords": [ "pulumi", @@ -24,6 +24,7 @@ }, "pulumi": { "resource": true, - "name": "vsphere" + "name": "vsphere", + "version": "4.0.0-alpha.0+dev" } } diff --git a/sdk/python/pulumi_vsphere/pulumi-plugin.json b/sdk/python/pulumi_vsphere/pulumi-plugin.json index 029b550c..f45fe14b 100644 --- a/sdk/python/pulumi_vsphere/pulumi-plugin.json +++ b/sdk/python/pulumi_vsphere/pulumi-plugin.json @@ -1,4 +1,5 @@ { "resource": true, - "name": "vsphere" + "name": "vsphere", + "version": "4.0.0-alpha.0+dev" } diff --git a/sdk/python/pyproject.toml b/sdk/python/pyproject.toml index 67a2b5d3..914e8d09 100644 --- a/sdk/python/pyproject.toml +++ b/sdk/python/pyproject.toml @@ -5,7 +5,7 @@ keywords = ["pulumi", "vsphere"] readme = "README.md" requires-python = ">=3.8" - version = "0.0.0" + version = "4.0.0a0+dev" [project.license] text = "Apache-2.0" [project.urls]