openpencil/.github/workflows/pr-title.yml
Danila Poyarkov b2499d8342
ci: run CI and the PR title check for the merge queue (#867)
* ci: run CI and the PR title check for the merge queue

A merge queue tests each queued change on top of the ones ahead of it and
waits for the required checks, CI result and PR title, on that merge
group. Both workflows now run on merge_group, reading the base and head
from either event. The title was checked on the pull request, so the
queue run reports success without a title to read.

* docs: explain stacked pull requests and the merge queue

Agents had to be told what a stacked pull request is each time.
CONTRIBUTING.md now covers stacks with gh stack, keeping them linear,
and landing them through the merge queue; AGENTS.md links to it, and
tools/AGENTS.md records that required checks must run on merge_group.

* docs: shorten the stacked pull request and merge queue guidance

The AGENTS.md line loads into every agent context, so keep it to the
rules; CONTRIBUTING.md keeps the commands.
2026-10-04 13:51:51 +04:00

37 lines
1.1 KiB
YAML

name: PR title
on:
# Every base, so stacked pull requests are checked against the PR below them.
pull_request:
types: [opened, synchronize, reopened, edited]
# A queued change was checked as a pull request; the queue still needs the result.
merge_group:
permissions:
contents: read
concurrency:
group: pr-title-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
pr-title:
name: PR title
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
- uses: ./.github/actions/setup-bun
- name: Validate PR title
if: github.event_name == 'pull_request'
env:
PR_TITLE: ${{ github.event.pull_request.title }}
COMMITLINT_PR_TITLE: '1'
run: |
if ! printf '%s\n' "$PR_TITLE" | bun run check:commits; then
echo '::error title=PR title::Use a Conventional Commit title, for example fix: preserve selection. See CONTRIBUTING.md#commit-messages.'
exit 1
fi