Repository navigation
fix(website): exclude the product build's receipt from publication inputs #8871
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
| # A change to the integration-contract index or a component is a contract change. Its PR is | |
| # titled `CONTRACT:` and labelled `contract`, and a PR that is titled or | |
| # labelled that way changes the doc. The rule is scripts/check-contract-pr.ts; | |
| # CONTRIBUTING.md says what it enforces. | |
| # | |
| # This is its own workflow rather than a job in ci.yml because the verdict | |
| # depends on the title and the labels, and editing either must re-run it. | |
| # Adding `edited` and `labeled` to ci.yml would re-run the whole suite on | |
| # every label change. | |
| # | |
| # The title and labels reach the script through environment variables, never | |
| # through an expression inside `run`: a PR title is attacker-controlled text. | |
| # | |
| # The comparison base is the one the PR declares, read from the PR at run time | |
| # with the read-only token. `github.base_ref` is not it: for an upper layer of a | |
| # native stack, `edited` events report the stack's base (`main`), and the gate | |
| # then charged the layer with its parent's contract edit (#2650). The event's | |
| # value is passed only so the log shows a disagreement. | |
| name: contract | |
| on: | |
| pull_request: | |
| types: [opened, edited, synchronize, reopened, labeled, unlabeled] | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: contract-${{ github.event.pull_request.number }} | |
| cancel-in-progress: true | |
| # GitHub Actions runs this gate for every ordinary pull request. | |
| jobs: | |
| contract: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| # The PR's head commit, not the default synthetic merge commit: the | |
| # merge commit, diffed against the base, drops a doc edit that also | |
| # landed on the base through another PR. Full history for the merge base. | |
| - uses: actions/checkout@v7 | |
| with: | |
| persist-credentials: false | |
| ref: ${{ github.event.pull_request.head.sha }} | |
| fetch-depth: 0 | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: "1.4.2" | |
| - name: Match the CONTRACT title and label to the contract doc | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| PR_NUMBER: ${{ github.event.pull_request.number }} | |
| EVENT_BASE_REF: ${{ github.base_ref }} | |
| HEAD_SHA: ${{ github.event.pull_request.head.sha }} | |
| PR_TITLE: ${{ github.event.pull_request.title }} | |
| PR_LABELS: ${{ toJSON(github.event.pull_request.labels.*.name) }} | |
| run: bun scripts/check-contract-pr.ts --declared-base "$HEAD_SHA" |