diff --git a/provider-ci/internal/pkg/generate.go b/provider-ci/internal/pkg/generate.go index 79c3db572..28c314046 100644 --- a/provider-ci/internal/pkg/generate.go +++ b/provider-ci/internal/pkg/generate.go @@ -73,7 +73,7 @@ func getTemplateDirs(templateName string) ([]string, error) { return []string{"dev-container", "provider", "pulumi-provider", "bridged-provider"}, nil case "external-bridged-provider": // Render more specific templates last to allow them to override more general templates. - return []string{"dev-container", "provider", "bridged-provider"}, nil + return []string{"dev-container", "provider", "external-provider", "bridged-provider"}, nil default: return nil, fmt.Errorf("unknown template: %s", templateName) } diff --git a/provider-ci/internal/pkg/templates/bridged-provider/.upgrade-config.yml b/provider-ci/internal/pkg/templates/bridged-provider/.upgrade-config.yml index 974dd6a4f..c5d6c39b8 100644 --- a/provider-ci/internal/pkg/templates/bridged-provider/.upgrade-config.yml +++ b/provider-ci/internal/pkg/templates/bridged-provider/.upgrade-config.yml @@ -9,8 +9,11 @@ upstream-provider-name: terraform-provider-#{{ .Config.provider }}# #{{- if (index .Config "upstreamProviderOrg") }}# upstream-provider-org: #{{ .Config.upstreamProviderOrg }}# #{{- end }}# +#{{- if (eq .Config.organization "pulumi") }}# pulumi-infer-version: true +#{{- end }}# remove-plugins: true #{{- if (index .Config "javaGenVersion") }}# javaVersion: "#{{ .Config.javaGenVersion }}#" #{{- end }}# +pr-assign: #{{ index .Config "pr-assign" }}# diff --git a/provider-ci/internal/pkg/templates/defaults.config.yaml b/provider-ci/internal/pkg/templates/defaults.config.yaml index f5acfe695..ccce158a6 100644 --- a/provider-ci/internal/pkg/templates/defaults.config.yaml +++ b/provider-ci/internal/pkg/templates/defaults.config.yaml @@ -36,6 +36,10 @@ major-version: 2 # Only set for 5 providers: https://github.com/search?q=org%3Apulumi+path%3A.ci-mgmt.yaml+%22upstream-provider-repo%22&type=code #upstream-provider-repo: terraform-provider-xyz +# pr-assign is used in the bridge upgrade config. The value must be a valid Github user name. +# Defaults to `pulumi-bot` but can be overridden for third-party packages +pr-assign: pulumi-bot + # lint includes an extra lint job in workflows if enabled (default). Can be set explicit to false. # This is false in around 8 provider repos: https://github.com/search?q=org%3Apulumi+path%3A.ci-mgmt.yaml+%22lint%3A+false%22&type=code lint: true diff --git a/provider-ci/internal/pkg/templates/external-provider/.github/workflows/upgrade-provider.yml b/provider-ci/internal/pkg/templates/external-provider/.github/workflows/upgrade-provider.yml new file mode 100644 index 000000000..5d0ad3305 --- /dev/null +++ b/provider-ci/internal/pkg/templates/external-provider/.github/workflows/upgrade-provider.yml @@ -0,0 +1,53 @@ +# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt +name: Upgrade provider + +on: + workflow_dispatch: {} + schedule: + # At 05:00 on Monday + - cron: 0 5 * * 1 + +env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + +permissions: + contents: write + issues: write + pull-requests: write + +jobs: + upgrade_provider: + name: upgrade-provider + runs-on: #{{ .Config.runner.default }}# + steps: + #{{- if .Config.freeDiskSpaceBeforeBuild }}# + # Run as first step so we don't delete things that have just been installed + - name: Free Disk Space (Ubuntu) + uses: #{{ .Config.actionVersions.freeDiskSpace }}# + with: + tool-cache: false + swap-storage: false + dotnet: false + #{{- end }}# + - name: Checkout Repo + uses: #{{ .Config.actionVersions.checkout }}# + #{{- if .Config.checkoutSubmodules }}# + with: + submodules: #{{ .Config.checkoutSubmodules }}# + #{{- end }}# + - name: Setup tools + uses: ./.github/actions/setup-tools + with: + tools: pulumictl, pulumicli, #{{ range $index, $element := .Config.languages }}##{{if $index}}#, #{{end}}##{{ $element }}##{{end}}# + - name: Install upgrade-provider + run: go install github.com/pulumi/upgrade-provider@main + shell: bash + - name: "Set up git identity: name" + run: | + git config --global user.name 'Github Actions' + git config --global user.email '41898282+github-actions[bot]@users.noreply.github.com' + shell: bash + - name: Run upgrade-provider + run: upgrade-provider "${{ github.repository }}" --kind="all" #{{ if .Config.javaGenVersion }}#--java-version="#{{ .Config.javaGenVersion }}#"#{{ end }}# + shell: bash diff --git a/provider-ci/test-providers/acme/.ci-mgmt.yaml b/provider-ci/test-providers/acme/.ci-mgmt.yaml index ad389d4d2..a92fc4a12 100644 --- a/provider-ci/test-providers/acme/.ci-mgmt.yaml +++ b/provider-ci/test-providers/acme/.ci-mgmt.yaml @@ -18,3 +18,4 @@ license: ignore: # Package is licensed under Apache 2.0 but license is not picked up correctly by the license detector - github.com/OpenDNS/vegadns2client +pr-assign: ringods diff --git a/provider-ci/test-providers/acme/.github/workflows/upgrade-provider.yml b/provider-ci/test-providers/acme/.github/workflows/upgrade-provider.yml new file mode 100644 index 000000000..5cbf095da --- /dev/null +++ b/provider-ci/test-providers/acme/.github/workflows/upgrade-provider.yml @@ -0,0 +1,40 @@ +# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt +name: Upgrade provider + +on: + workflow_dispatch: {} + schedule: + # At 05:00 on Monday + - cron: 0 5 * * 1 + +env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + +permissions: + contents: write + issues: write + pull-requests: write + +jobs: + upgrade_provider: + name: upgrade-provider + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + - name: Setup tools + uses: ./.github/actions/setup-tools + with: + tools: pulumictl, pulumicli, dotnet, go, nodejs, python + - name: Install upgrade-provider + run: go install github.com/pulumi/upgrade-provider@main + shell: bash + - name: "Set up git identity: name" + run: | + git config --global user.name 'Github Actions' + git config --global user.email '41898282+github-actions[bot]@users.noreply.github.com' + shell: bash + - name: Run upgrade-provider + run: upgrade-provider "${{ github.repository }}" --kind="all" + shell: bash diff --git a/provider-ci/test-providers/acme/.upgrade-config.yml b/provider-ci/test-providers/acme/.upgrade-config.yml index ee22c7784..b3d81b552 100644 --- a/provider-ci/test-providers/acme/.upgrade-config.yml +++ b/provider-ci/test-providers/acme/.upgrade-config.yml @@ -3,5 +3,5 @@ --- upstream-provider-name: terraform-provider-acme upstream-provider-org: vancluever -pulumi-infer-version: true remove-plugins: true +pr-assign: ringods diff --git a/provider-ci/test-providers/aws/.upgrade-config.yml b/provider-ci/test-providers/aws/.upgrade-config.yml index 1c2df133e..221970299 100644 --- a/provider-ci/test-providers/aws/.upgrade-config.yml +++ b/provider-ci/test-providers/aws/.upgrade-config.yml @@ -4,3 +4,4 @@ upstream-provider-name: terraform-provider-aws pulumi-infer-version: true remove-plugins: true +pr-assign: pulumi-bot diff --git a/provider-ci/test-providers/cloudflare/.upgrade-config.yml b/provider-ci/test-providers/cloudflare/.upgrade-config.yml index ca74b05d8..210a3fab8 100644 --- a/provider-ci/test-providers/cloudflare/.upgrade-config.yml +++ b/provider-ci/test-providers/cloudflare/.upgrade-config.yml @@ -4,3 +4,4 @@ upstream-provider-name: terraform-provider-cloudflare pulumi-infer-version: true remove-plugins: true +pr-assign: pulumi-bot diff --git a/provider-ci/test-providers/docker/.upgrade-config.yml b/provider-ci/test-providers/docker/.upgrade-config.yml index 896e077c8..5d070344d 100644 --- a/provider-ci/test-providers/docker/.upgrade-config.yml +++ b/provider-ci/test-providers/docker/.upgrade-config.yml @@ -5,3 +5,4 @@ upstream-provider-name: terraform-provider-docker upstream-provider-org: kreuzwerker pulumi-infer-version: true remove-plugins: true +pr-assign: pulumi-bot