Skip to content

Add Paramaterize to provider interface #586

Add Paramaterize to provider interface

Add Paramaterize to provider interface #586

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"