Update first-party Pulumi dependencies to v3.217.0 #2707
Workflow file for this run
This file contains hidden or 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
| permissions: write-all # Equivalent to default permissions plus id-token: write | |
| name: Build and test | |
| on: | |
| merge_group: null | |
| pull_request: null | |
| push: | |
| branches: | |
| - main | |
| env: | |
| AWS_REGION: us-west-2 | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| PULUMI_TEST_OWNER: "moolumi" | |
| ESC_ACTION_OIDC_AUTH: true | |
| ESC_ACTION_OIDC_ORGANIZATION: pulumi | |
| ESC_ACTION_OIDC_REQUESTED_TOKEN_TYPE: urn:pulumi:token-type:access_token:organization | |
| ESC_ACTION_ENVIRONMENT: github-secrets/pulumi-pulumi-dotnet | |
| ESC_ACTION_EXPORT_ENVIRONMENT_VARIABLES: PULUMI_ACCESS_TOKEN=PULUMI_ACCESS_TOKEN_PRODUCTION | |
| jobs: | |
| setup_matrix: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| matrix: ${{ steps.set-matrix.outputs.matrix }} | |
| steps: | |
| - name: Fetch secrets from ESC | |
| id: esc-secrets | |
| continue-on-error: true | |
| uses: pulumi/esc-action@6cf9520e68354d86f81c455e8d43eabd58f5c9f5 # v1 | |
| - id: set-matrix | |
| run: | | |
| os="${{ contains(github.event.pull_request.labels.*.name, 'ci/test') && 'ubuntu-latest macos-latest windows-latest' || 'ubuntu-latest' }}" | |
| echo "matrix={\"os\": $(echo $os | jq -cR 'split(" ")')}" >> $GITHUB_OUTPUT | |
| format: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Fetch secrets from ESC | |
| id: esc-secrets | |
| continue-on-error: true | |
| uses: pulumi/esc-action@6cf9520e68354d86f81c455e8d43eabd58f5c9f5 # v1 | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: 'recursive' | |
| - name: Setup mise and install tools | |
| uses: jdx/mise-action@v3.6.0 | |
| - name: Run `make format_check` | |
| run: make format_check | |
| lint: | |
| name: Lint Go | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Fetch secrets from ESC | |
| id: esc-secrets | |
| continue-on-error: true | |
| uses: pulumi/esc-action@6cf9520e68354d86f81c455e8d43eabd58f5c9f5 # v1 | |
| - uses: actions/checkout@v6 | |
| - name: Setup mise and install tools | |
| uses: jdx/mise-action@v3.6.0 | |
| - name: Run `make lint_language_host` | |
| run: make lint_language_host GOLANGCI_LINT_ARGS=--output.text.path=stdout | |
| - name: Run `make lint_integration_tests` | |
| run: make lint_integration_tests GOLANGCI_LINT_ARGS=--output.text.path=stdout | |
| lint-changelog: | |
| name: Lint Changelog | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Fetch secrets from ESC | |
| id: esc-secrets | |
| continue-on-error: true | |
| uses: pulumi/esc-action@6cf9520e68354d86f81c455e8d43eabd58f5c9f5 # v1 | |
| - uses: actions/checkout@v6 | |
| - name: Setup mise and install tools | |
| uses: jdx/mise-action@v3.6.0 | |
| - name: Check if folder is empty | |
| id: folder_check | |
| run: | | |
| if [ -z "$(ls .changes/unreleased)" ]; then | |
| echo "empty=true" >> $GITHUB_OUTPUT | |
| else | |
| echo "empty=false" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Check the changelog is batchable | |
| # There are changes so check changie will batch them | |
| if: steps.folder_check.outputs.empty == 'false' | |
| run: changie batch auto --dry-run | |
| build: | |
| needs: setup_matrix | |
| strategy: | |
| matrix: | |
| os: ${{ fromJson(needs.setup_matrix.outputs.matrix).os }} | |
| dotnet-version: ["8.0", "9.0", "10.0"] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Fetch secrets from ESC | |
| id: esc-secrets | |
| continue-on-error: true | |
| uses: pulumi/esc-action@6cf9520e68354d86f81c455e8d43eabd58f5c9f5 # v1 | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| - name: Setup dotnet SDK | |
| id: setup-dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| # Install 8.0 for Build.fsproj and the matrix version. | |
| # `outputs.dotnet-version` is the latest version among the installed | |
| # versions. Since Build.fsproj targets the lowest version we support, | |
| # this works out ok for the matrix. | |
| # https://github.com/actions/setup-dotnet?tab=readme-ov-file#dotnet-version | |
| dotnet-version: | | |
| 8.0.x | |
| ${{ matrix.dotnet-version }} | |
| - name: Create global.json | |
| # This ensures that we use the matrix version instead of the runner's default version | |
| # https://github.com/actions/setup-dotnet?tab=readme-ov-file#matrix-testing | |
| run: | | |
| echo '{"sdk":{"version": "${{ steps.setup-dotnet.outputs.dotnet-version }}"}}' > ./global.json | |
| - name: Dotnet version | |
| run: dotnet --version | |
| - name: Install Pulumi CLI | |
| uses: pulumi/actions@8582a9e8cc630786854029b4e09281acd6794b58 # v6 | |
| with: | |
| pulumi-version: dev | |
| - name: Build Pulumi SDK | |
| run: make build_sdk | |
| - name: Workspace clean (are xml doc file updates committed?) | |
| uses: pulumi/git-status-check-action@v1 | |
| with: | |
| allowed-changes: ./global.json | |
| - name: Test Pulumi SDK | |
| run: make test_sdk_coverage | |
| - name: Test Pulumi Automation SDK | |
| run: make test_sdk_automation_coverage | |
| - name: Upload coverage data | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| directory: coverage | |
| files: "*" | |
| fail_ci_if_error: false | |
| verbose: true | |
| token: ${{ steps.esc-secrets.outputs.CODECOV_TOKEN }} | |
| integration-tests: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| dotnet-version: ["8.0", "9.0", "10.0"] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Fetch secrets from ESC | |
| id: esc-secrets | |
| continue-on-error: true | |
| uses: pulumi/esc-action@6cf9520e68354d86f81c455e8d43eabd58f5c9f5 # v1 | |
| - name: Set TARGET_FRAMEWORK | |
| shell: bash | |
| run: echo "TARGET_FRAMEWORK=net${{ matrix.dotnet-version }}" >> $GITHUB_ENV | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| - name: Setup dotnet SDK | |
| id: setup-dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: ${{ matrix.dotnet-version }} | |
| - name: Create global.json | |
| # This ensures that we use the matrix version instead of the runner's default version | |
| # https://github.com/actions/setup-dotnet?tab=readme-ov-file#matrix-testing | |
| run: | | |
| echo '{"sdk":{"version": "${{ steps.setup-dotnet.outputs.dotnet-version }}"}}' > ./global.json | |
| - name: Dotnet version | |
| run: dotnet --version | |
| - name: Set up Go 1.24.x | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: 1.24.x | |
| - name: Install Pulumi CLI | |
| uses: pulumi/actions@8582a9e8cc630786854029b4e09281acd6794b58 # v6 | |
| with: | |
| pulumi-version: dev | |
| - name: Install gotestsum | |
| uses: jaxxstorm/action-install-gh-release@v2.1.0 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| repo: gotestyourself/gotestsum | |
| tag: v1.8.1 | |
| cache: enable | |
| - name: Install netcoredbg (Linux) | |
| if: startsWith(matrix.os, 'ubuntu') | |
| run: | | |
| curl -sSL https://github.com/Samsung/netcoredbg/releases/download/3.1.1-1042/netcoredbg-linux-amd64.tar.gz -o netcoredbg.tar.gz | |
| tar xzf netcoredbg.tar.gz | |
| sudo cp netcoredbg/* /usr/bin/ | |
| - uses: MinoruSekine/setup-scoop@v4.0.2 | |
| if: startsWith(matrix.os, 'windows') | |
| with: | |
| buckets: extras | |
| apps: doxygen plantuml | |
| - name: Install netcoredbg (Windows) | |
| if: startsWith(matrix.os, 'windows') | |
| run: | | |
| scoop install netcoredbg | |
| - name: Install netcoredbg (MacOS) | |
| if: startsWith(matrix.os, 'macos') | |
| id: netcoredbg | |
| run: | | |
| curl -sSL https://github.com/Samsung/netcoredbg/releases/download/3.1.1-1042/netcoredbg-osx-amd64.tar.gz -o netcoredbg.tar.gz | |
| tar xzf netcoredbg.tar.gz | |
| echo "netcoredbgpath=$(pwd)/netcoredbg/" >> ${GITHUB_OUTPUT} | |
| - name: Integration tests | |
| if: startsWith(matrix.os, 'macos') | |
| run: PATH="${{ steps.netcoredbg.outputs.netcoredbgpath}}":"$PATH" make test_integration | |
| - name: Integration tests | |
| if: startsWith(matrix.os, 'macos') != true | |
| run: make test_integration | |
| conformance-tests: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| dotnet-version: [8.0] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Fetch secrets from ESC | |
| id: esc-secrets | |
| continue-on-error: true | |
| uses: pulumi/esc-action@6cf9520e68354d86f81c455e8d43eabd58f5c9f5 # v1 | |
| - name: Set TARGET_FRAMEWORK | |
| run: echo "TARGET_FRAMEWORK=net${{ matrix.dotnet-version }}" >> $GITHUB_ENV | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| - name: Setup mise and install tools | |
| uses: jdx/mise-action@v3.6.0 | |
| - name: Set dotnet version from matrix | |
| run: mise use dotnet@${{ matrix.dotnet-version }} | |
| - name: Install Pulumi CLI | |
| uses: pulumi/actions@8582a9e8cc630786854029b4e09281acd6794b58 # v6 | |
| with: | |
| pulumi-version: dev | |
| - name: Dotnet version | |
| run: dotnet --version | |
| - name: Conformance tests | |
| run: make test_conformance | |
| info: | |
| name: gather | |
| runs-on: ubuntu-latest | |
| outputs: | |
| version: "${{ steps.version.outputs.version }}" | |
| steps: | |
| - name: Fetch secrets from ESC | |
| id: esc-secrets | |
| continue-on-error: true | |
| uses: pulumi/esc-action@6cf9520e68354d86f81c455e8d43eabd58f5c9f5 # v1 | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup mise and install tools | |
| uses: jdx/mise-action@v3.6.0 | |
| - name: Get version info | |
| id: version | |
| run: | | |
| if [ -n "$(ls .changes/unreleased 2>/dev/null)" ]; then | |
| TAG="$(changie next auto)" | |
| else | |
| TAG="$(changie next patch)" | |
| fi | |
| TAG="${TAG#v}" # remove prefix | |
| OID="$(git rev-parse --short HEAD)" | |
| PULUMI_VERSION="$TAG-alpha.$OID" | |
| echo "version=${PULUMI_VERSION}" >> $GITHUB_OUTPUT | |
| release-dev-sdk: | |
| name: release-dev-sdk | |
| needs: [build, integration-tests, conformance-tests, info] | |
| uses: ./.github/workflows/release-sdk.yml | |
| if: ${{ github.event_name == 'merge_group' }} | |
| with: | |
| ref: ${{ github.event.release.tag_name }} | |
| version: ${{ needs.info.outputs.version }} | |
| release-notes: ${{ github.event.release.body }} | |
| secrets: inherit | |
| check-pr: | |
| needs: ["build", "integration-tests", "format"] | |
| runs-on: ubuntu-latest | |
| if: always() # always report a status | |
| steps: | |
| - name: Fetch secrets from ESC | |
| id: esc-secrets | |
| continue-on-error: true | |
| uses: pulumi/esc-action@6cf9520e68354d86f81c455e8d43eabd58f5c9f5 # v1 | |
| - name: Build failed | |
| if: ${{ needs.build.result != 'success' }} | |
| run: exit 1 | |
| - name: Integration tests failed | |
| if: ${{ needs.integration-tests.result != 'success' }} | |
| run: exit 1 | |
| - name: Format failed | |
| if: ${{ needs.format.result != 'success' }} | |
| run: exit 1 | |
| - name: CI succeeded | |
| run: exit 0 |