# WARNING: This file is autogenerated - changes will be overwritten when regenerated by https://github.com/pulumi/ci-mgmt name: "Prerequisites" on: workflow_call: inputs: is_pr: type: boolean required: true is_automated: type: boolean required: true default_branch: type: string required: true outputs: version: description: "Provider version being built" value: ${{ jobs.prerequisites.outputs.version }} env: PULUMI_API: https://api.pulumi-staging.io PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/.. PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget PULUMI_PROVIDER_AUTOMATION_TOKEN: ${{ secrets.PULUMI_PROVIDER_AUTOMATION_TOKEN }} PULUMI_PULUMI_ENABLE_JOURNALING: "true" TF_APPEND_USER_AGENT: pulumi jobs: prerequisites: name: prerequisites runs-on: ubuntu-latest permissions: contents: read pull-requests: write id-token: write # For ESC secrets. outputs: version: ${{ steps.provider-version.outputs.version }} steps: - name: Checkout Repo uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false - id: esc-secrets name: Map environment to ESC outputs uses: ./.github/actions/esc-action - uses: pulumi/provider-version-action@3a647064cf4697c7c6352b9a1d9e554450cbe957 # v1.6.1 id: provider-version with: major-version: 1 set-env: 'PROVIDER_VERSION' - name: Cache examples generation uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: path: | .pulumi/examples-cache key: ${{ runner.os }}-${{ hashFiles('provider/go.sum') }} - name: Setup mise uses: jdx/mise-action@146a28175021df8ca24f8ee1828cc2a60f980bd5 # v3 env: MISE_FETCH_REMOTE_VERSIONS_TIMEOUT: 30s with: version: 2025.11.6 github_token: ${{ steps.esc-secrets.outputs.PULUMI_BOT_TOKEN }} # only saving the cache in the prerequisites job cache_save: true - name: Setup Go Cache uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6 with: cache-dependency-path: | provider/*.sum upstream/*.sum sdk/go/*.sum sdk/*.sum *.sum - name: Prepare local workspace before restoring previously built files run: make prepare_local_workspace env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Generate schema run: make schema - name: Build provider binary run: make provider - name: Unit-test provider code run: make test_provider env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload coverage reports to Codecov uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1 env: CODECOV_TOKEN: ${{ steps.esc-secrets.outputs.CODECOV_TOKEN }} - if: inputs.is_pr name: Check Schema is Valid run: | EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64) { echo "SCHEMA_CHANGES<<$EOF"; schema-tools compare -r github://api.github.com/kiterun -p incus -o "${{ inputs.default_branch }}" -n --local-path=provider/cmd/pulumi-resource-incus/schema.json; echo "$EOF"; } >> "$GITHUB_ENV" - if: inputs.is_pr && inputs.is_automated == false && github.actor != 'dependabot[bot]' name: Comment on PR with Details of Schema Check uses: thollander/actions-comment-pull-request@24bffb9b452ba05a4f3f77933840a6a841d1b32b # v3.0.1 with: github-token: ${{ secrets.GITHUB_TOKEN }} comment-tag: schemaCheck message: >+ ${{ env.SCHEMA_CHANGES }} Maintainer note: consult the [runbook](https://github.com/pulumi/platform-providers-team/blob/main/playbooks/tf-provider-updating.md) for dealing with any breaking changes. - name: Upload artifacts uses: ./.github/actions/upload-prerequisites