chore: merge pull request #1148 from halcwb/feat/985-contract #531
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
| name: Release | |
| # Runs ShipIt on every push to master to open/update a release PR with the next version | |
| # and changelog section. Deliberately its own workflow, not a job in build.yml: a ShipIt | |
| # failure must never block the test/format matrix that already ran (and gated) the PR | |
| # that got merged to produce this push. See ADR-0005 and the #234 implementation plan, | |
| # step 5. | |
| on: | |
| push: | |
| branches: [ master ] | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| jobs: | |
| shipit: | |
| name: ShipIt - Release PR | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| with: | |
| # ShipIt walks conventional-commit history back to the last_commit_released | |
| # pin in CHANGELOG.md's front matter; a shallow checkout could stop short of it. | |
| fetch-depth: 0 | |
| - name: Use .NET Core 10.0 SDK | |
| uses: actions/setup-dotnet@26b0ec14cb23fa6904739307f278c14f94c95bf1 # v5.4.0 | |
| with: | |
| global-json-file: global.json | |
| cache: true | |
| cache-dependency-path: | | |
| global.json | |
| .config/dotnet-tools.json | |
| - name: Tool restore | |
| run: dotnet tool restore | |
| - name: ShipIt (Pull Request) | |
| # --allow-branch: this repo's default branch is master, not ShipIt's main-branch default. | |
| # --skip-merge-commit: existing history has `Merge pull request ...` commits ShipIt can't | |
| # parse. --skip-invalid-commit: a non-conventional commit (e.g. a GitHub-UI "commit | |
| # suggestion", which bypasses the local Husky commit-msg hook) can still reach master if a | |
| # required commit-lint check is overridden on merge; without this flag ShipIt throws | |
| # FailedToParseCommit and this whole workflow fails closed instead of just dropping that | |
| # one commit from the changelog (see issue and incident referenced in DEVELOPMENT.md). | |
| # All three flags are required for every invocation against this repo (see DEVELOPMENT.md). | |
| # No --mode flag: defaults to pull-request, matching ADR-0005's decision that ShipIt opens | |
| # a release PR for review rather than pushing directly to master. | |
| run: dotnet shipit --allow-branch master --skip-merge-commit --skip-invalid-commit | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |