Skip to content

Commit

Permalink
Reapplied pulumi/ci-mgmt
Browse files Browse the repository at this point in the history
  • Loading branch information
ringods committed Nov 15, 2024
1 parent 0536f09 commit c58e89d
Show file tree
Hide file tree
Showing 4 changed files with 171 additions and 19 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ jobs:
echo 'EOF'
} >> "$GITHUB_OUTPUT"
- name: Create GH Release
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
if: inputs.isPrerelease == false
with:
tag_name: v${{ inputs.version }}
Expand Down
111 changes: 93 additions & 18 deletions .github/workflows/upgrade-bridge.yml
Original file line number Diff line number Diff line change
@@ -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.PULUMI_PROVIDER_AUTOMATION_TOKEN || secrets.PULUMI_BOT_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/[email protected]
with:
kind: bridge
email: [email protected]
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/[email protected]
with:
kind: ${{ inputs.kind }}
email: [email protected]
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/[email protected]
with:
kind: ${{ github.event.client_payload.kind || 'bridge' }}
email: [email protected]
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 }}
76 changes: 76 additions & 0 deletions .github/workflows/upgrade-provider.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# 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:
# 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.PULUMI_PROVIDER_AUTOMATION_TOKEN || secrets.PULUMI_BOT_TOKEN || secrets.GITHUB_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

jobs:
upgrade_provider:
name: upgrade-provider
runs-on: ubuntu-latest
steps:
- 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:
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"
run: |
git config --global user.name '[email protected]'
git config --global user.email '[email protected]'
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:
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
id: upgrade_provider
# Only attempt the upgrade if we have a target version
if: steps.target_version.outputs.version != ''
# Don't mark the build as failed if we can't auto-open a PR as we've already opened the upgrade issue for tracking
continue-on-error: true
run: upgrade-provider "${{ github.repository }}" --kind="all" --target-version="${{ steps.target_version.outputs.version }}"
shell: bash
- name: Comment on upgrade issue if automated PR failed
if: steps.upgrade_provider.outcome == 'failure'
shell: bash
run: |
issue_number=$(gh issue list --search "pulumiupgradeproviderissue" --repo "${{ github.repository }}" --json=number --jq=".[0].number")
gh issue comment "${issue_number}" --repo "${{ github.repository }}" --body "Failed to create automatic PR: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}/"
1 change: 1 addition & 0 deletions .upgrade-config.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
upstream-provider-name: terraform-provider-talos
upstream-provider-org: siderolabs
remove-plugins: true
pulumi-infer-version: true
pr-reviewers: ringods

0 comments on commit c58e89d

Please sign in to comment.