Add Paramaterize to provider interface #586
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Downstream Codegen Tests | |
on: | |
pull_request: | |
paths: | |
- 'pkg/codegen/**' | |
- '!pkg/codegen/docs/**' | |
- '.github/workflows/pr-test-codegen-downstream.yml' | |
permissions: | |
contents: read | |
jobs: | |
cleanup: | |
name: Remove Existing Codegen PRs | |
runs-on: ubuntu-latest | |
continue-on-error: true | |
env: | |
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} | |
steps: | |
- name: "Close existing Downstream PRs" | |
run: | | |
for url in $(gh search prs --json url --owner pulumi --state open --match body "This is a downstream codegen test for pulumi/pulumi#${{ github.event.pull_request.number }}." | jq -r '.[].url'); do | |
gh pr close "$url" | |
done | |
bridged: | |
name: Test ${{ matrix.provider }} (bridged) | |
needs: ["cleanup"] | |
timeout-minutes: 240 | |
runs-on: ubuntu-latest | |
env: | |
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} | |
strategy: | |
matrix: | |
provider: ["aws", "gcp", "azure", "azuread", "random"] | |
fail-fast: false | |
steps: | |
- name: Trigger upgrade | |
uses: peter-evans/repository-dispatch@v2 | |
with: | |
token: ${{ secrets.PULUMI_BOT_TOKEN }} | |
repository: pulumi/pulumi-${{ matrix.provider }} | |
event-type: upgrade-bridge-test | |
client-payload: |- | |
{ | |
"target-pulumi-version": ${{ toJSON( github.event.pull_request.head.sha ) }}, | |
"target-bridge-version": "", | |
"pr-reviewers": ${{ toJSON( github.triggering_actor || 'justinvp' ) }}, | |
"pr-description": "This is a downstream codegen test for pulumi/pulumi#${{ github.event.pull_request.number }}. (run-id: ${{ github.run_id }})", | |
"automerge": false, | |
"pr-title-prefix": "[DOWNSTREAM TEST][PLATFORM]" | |
} | |
- name: Await PR opened for pulumi-${{ matrix.provider }} | |
run: | | |
echo Await PR opened for pulumi-${{ matrix.provider }} | |
until gh search prs --repo pulumi/pulumi-${{ matrix.provider }} --review-requested ${{ toJSON( github.triggering_actor || 'justinvp' ) }} --match body "This is a downstream codegen test for pulumi/pulumi#${{ github.event.pull_request.number }}. (run-id: ${{ github.run_id }})" --json url | grep url; do sleep 30; done; | |
- name: Await PR codegen tests succeed. | |
run: | | |
echo "Await PR opened for pulumi-${{ matrix.provider }}" | |
number=$(gh search prs --repo pulumi/pulumi-${{ matrix.provider }} --review-requested ${{ toJSON( github.triggering_actor || 'justinvp' ) }} --match body "This is a downstream codegen test for pulumi/pulumi#${{ github.event.pull_request.number }}. (run-id: ${{ github.run_id }})" --json number --jq '.[0].number') | |
# Ensure that expected checks are pending before checking the status passes. | |
# We use 'test' as all workflows have tests. | |
until gh pr checks --repo "pulumi/pulumi-${{ matrix.provider }}" "$number" | grep 'test'; do sleep 30; done; | |
gh pr checks --repo "pulumi/pulumi-${{ matrix.provider }}" "$number" --watch --fail-fast | |
# Native Providers | |
awsx: | |
name: Test AWSX | |
needs: ["cleanup"] | |
timeout-minutes: 240 | |
runs-on: ubuntu-latest | |
env: | |
GOVERSION: ">=1.19.0" # from awsx: decoupled from version sets, track latest for codegen | |
NODEVERSION: "18.x" | |
PYTHONVERSION: "3.9.x" | |
DOTNETVERSION: "6.x" | |
JAVAVERSION: "11" | |
AWS_REGION: us-west-2 | |
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} | |
steps: | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-region: ${{ env.AWS_REGION }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
role-duration-seconds: 3600 | |
role-session-name: awsx@githubActions | |
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }} | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GOVERSION }} | |
check-latest: true | |
- name: Setup Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODEVERSION }} | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ env.PYTHONVERSION }} | |
- name: Setup DotNet | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: ${{ env.DOTNETVERSION }} | |
- name: Setup Java | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: ${{ env.JAVAVERSION }} | |
- name: Install gotestfmt | |
uses: jaxxstorm/[email protected] | |
with: | |
repo: gotesttools/gotestfmt | |
- name: Install pulumictl | |
uses: jaxxstorm/[email protected] | |
with: | |
repo: pulumi/pulumictl | |
- name: Check out source code | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
token: ${{ secrets.PULUMI_BOT_TOKEN }} | |
- name: Test Downstream | |
uses: pulumi/[email protected] | |
env: | |
GOPROXY: "https://proxy.golang.org" | |
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/../pulumi-awsx/nuget | |
AWS_REGION: us-west-2 | |
PWD: ${{ github.workspace }}/pulumi-awsx | |
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }} | |
PULUMI_API: https://api.pulumi-staging.io | |
TESTPARALLELISM: 4 | |
with: | |
replacements: github.com/pulumi/pulumi/pkg/v3=pulumi/pkg,github.com/pulumi/pulumi/sdk/v3=pulumi/sdk | |
downstream-name: pulumi-awsx | |
downstream-url: https://github.com/pulumi/pulumi-awsx | |
use-provider-dir: true | |
issue-number: ${{ github.event.client_payload.github.payload.issue.number }} | |
buildTargets: "build,install_dotnet_sdk" | |
testTargets: "lint,test_nodejs,test_python,test_java,test_go,test_dotnet,test" |