From 4861ca38dc24a4ad8cd28434b0883d22f8adb624 Mon Sep 17 00:00:00 2001 From: Ringo De Smet Date: Sun, 3 Nov 2024 10:31:47 +0100 Subject: [PATCH] Applying patched versions of generated upgrade-bridge & upgrade-provider workflows Signed-off-by: Ringo De Smet --- .github/workflows/upgrade-bridge.yml | 111 +++++++++++++++++++++---- .github/workflows/upgrade-provider.yml | 68 ++++++++++++--- 2 files changed, 148 insertions(+), 31 deletions(-) diff --git a/.github/workflows/upgrade-bridge.yml b/.github/workflows/upgrade-bridge.yml index c2a2f889..7244974b 100644 --- a/.github/workflows/upgrade-bridge.yml +++ b/.github/workflows/upgrade-bridge.yml @@ -1,25 +1,100 @@ -name: Upgrade bridge +# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt +name: Upgrade bridge on: + repository_dispatch: + types: + - upgrade-bridge + - upgrade-bridge-test workflow_dispatch: - schedule: - # At 05:00 on Monday - - cron: 0 5 * * 1 + inputs: + kind: + description: Overrides the kind of upgrade. Must be one of `all`, `bridge`, `provider`, `code`, `pf`, or `pulumi`. + required: false + type: string + default: "bridge" + target-bridge-version: + description: pulumi-terraform-bridge version or hash reference + required: false + type: string + default: "latest" + target-pulumi-version: + description: | + Set the version of `pulumi/pkg` and `pulumi/sdk` to depend on for bridged providers. Currently, + these versions inform the linked runtime and SDK generation in all languages except Java. Valid + options are: + - "": Use the same version as pulumi-terraform-bridge + - A go version such as "v3.90.1" + - A commit SHA in pulumi/pulumi such as "ac71ebc1d34e5ccfd1a7fed61e6ff43a3160f3cb" + required: false + type: string + default: "" + pr-reviewers: + description: Reviewers to assign to the auto-opened pull request + required: false + type: string + default: "" + pr-description: + description: Extra description to add to the auto-opened pull request + required: false + type: string + default: "" + pr-title-prefix: + description: Prefix to add to the auto-opened pull request title + required: false + type: string + default: "" + automerge: + description: Mark created PR for auto-merging? + required: false + type: boolean + default: false + +permissions: + contents: write + issues: write + pull-requests: write + +env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} jobs: - upgrade_bridge: - name: upgrade-bridge + upgrade_provider: + name: upgrade-provider runs-on: ubuntu-latest - permissions: - contents: write - pull-requests: write - issues: write steps: - - name: Call upgrade provider action - uses: pulumi/pulumi-upgrade-provider-action@v0.0.12 - with: - kind: bridge - email: ringo@de-smet.name - username: "Ringo De Smet" - env: - GH_TOKEN: ${{ secrets.UPGRADE_PROVIDER_TOKEN }} + - name: Checkout Repo + uses: actions/checkout@v4 + with: + persist-credentials: false + - name: Setup tools + uses: ./.github/actions/setup-tools + with: + tools: pulumictl, pulumicli, dotnet, go, nodejs, python + - name: Call upgrade provider action + if: github.event_name == 'workflow_dispatch' + uses: pulumi/pulumi-upgrade-provider-action@v0.0.12 + with: + kind: ${{ inputs.kind }} + email: bot@pulumi.com + username: pulumi-bot + automerge: ${{ inputs.automerge }} + target-bridge-version: ${{ inputs.target-bridge-version }} + target-pulumi-version: ${{ inputs.target-pulumi-version }} + pr-reviewers: ${{ inputs.pr-reviewers }} + pr-description: ${{ inputs.pr-description }} + pr-title-prefix: ${{ inputs.pr-title-prefix }} + - name: Call upgrade provider action + if: github.event_name == 'repository_dispatch' + uses: pulumi/pulumi-upgrade-provider-action@v0.0.12 + with: + kind: ${{ github.event.client_payload.kind || 'bridge' }} + email: bot@pulumi.com + username: pulumi-bot + automerge: ${{ github.event.client_payload.automerge }} + target-pulumi-version: ${{ github.event.client_payload.target-pulumi-version }} + target-bridge-version: ${{ github.event.client_payload.target-bridge-version }} + pr-reviewers: ${{ github.event.client_payload.pr-reviewers }} + pr-description: ${{ github.event.client_payload.pr-description }} + pr-title-prefix: ${{ github.event.client_payload.pr-title-prefix }} diff --git a/.github/workflows/upgrade-provider.yml b/.github/workflows/upgrade-provider.yml index b96bedbc..b47f7d6e 100644 --- a/.github/workflows/upgrade-provider.yml +++ b/.github/workflows/upgrade-provider.yml @@ -1,25 +1,67 @@ -name: Upgrade provider +# 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: + inputs: + version: + description: | + The version of the upstream provider to upgrade to, without the 'v' prefix + + If no version is specified, it will be inferred from the upstream provider's release tags. + required: false + type: string schedule: - # At 05:00 on Wednesday - - cron: 0 5 * * 3 + # 3 AM UTC ~ 8 PM PDT / 7 PM PST daily. Time chosen to run during off hours. + - cron: 0 3 * * * + +permissions: + contents: write + issues: write + pull-requests: write + +env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} jobs: upgrade_provider: name: upgrade-provider runs-on: ubuntu-latest - permissions: - contents: write - pull-requests: write - issues: write steps: - - name: Call upgrade provider action - uses: pulumi/pulumi-upgrade-provider-action@v0.0.12 + - name: Checkout Repo + uses: actions/checkout@v4 + with: + # Persist credentials so upgrade-provider can push a new branch. + persist-credentials: true + - name: Setup tools + uses: ./.github/actions/setup-tools with: - kind: provider - email: ringo@de-smet.name - username: "Ringo De Smet" + tools: pulumictl, pulumicli, go, nodejs, dotnet, python, java + - name: Install upgrade-provider + run: go install github.com/pulumi/upgrade-provider@main + shell: bash + - name: "Set up git identity" + run: | + git config --global user.name 'bot@pulumi.com' + git config --global user.email 'bot@pulumi.com' + shell: bash + - name: Create issues for new upstream version + if: inputs.version == '' + id: upstream_version + # This step outputs `latest_version` if there is a pending upgrade + run: upgrade-provider "$REPO" --kind=check-upstream-version env: - GH_TOKEN: ${{ secrets.UPGRADE_PROVIDER_TOKEN }} + REPO: ${{ github.repository }} + shell: bash + - name: Calculate target version + id: target_version + # Prefer the manually specified version if it exists + # upstream_version will be empty if the provider is up-to-date + run: echo "version=${{ github.event.inputs.version || steps.upstream_version.outputs.latest_version }}" >> "$GITHUB_OUTPUT" + shell: bash + - name: Attempt provider upgrade + # Only attempt the upgrade if we have a target version + if: steps.target_version.outputs.version != '' + run: upgrade-provider "${{ github.repository }}" --kind="all" --target-version="${{ steps.target_version.outputs.version }}" + shell: bash