Skip to content

test: Add CI for npm-installed CLI #493

test: Add CI for npm-installed CLI

test: Add CI for npm-installed CLI #493

name: PR Title Check [boxel-cli]
# Validates that PRs touching packages/boxel-cli/** use a conventional-commit
# title (feat:, fix:, chore:, etc.). The boxel-cli-publish.yml workflow reads
# the merged PR's title to decide the unstable version bump level, so this
# check is the contract that keeps that flow working.
#
# Path-scoped — does NOT run for PRs that don't touch boxel-cli. Don't mark
# this as a required status check in branch protection: required checks on
# path-filtered workflows leave non-boxel-cli PRs pending indefinitely.
#
# No `merge_group:` trigger — `paths:` is not honored on merge_group events,
# so adding it would block unrelated PRs in the merge queue on a
# boxel-cli-scoped title check. If merge queues are adopted and this needs
# to gate them, add a changed-files step inside the job instead.
on:
pull_request:
types: [opened, edited, synchronize, reopened]
paths:
- "packages/boxel-cli/**"
permissions:
pull-requests: read
jobs:
validate:
name: Validate PR title
runs-on: ubuntu-latest
steps:
# Sparse-checkout just the one JSON file that is the single source of
# truth for allowed conventional-commit prefixes. The post-merge
# workflow (boxel-cli-publish.yml) reads the same file via
# compute-release.ts — keeps the pre-merge gate and post-merge
# classifier in lockstep.
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
sparse-checkout: packages/boxel-cli/scripts/release-prefixes.json
sparse-checkout-cone-mode: false
- id: types
run: |
{
echo 'list<<__EOF__'
node -e 'console.log(Object.keys(require("./packages/boxel-cli/scripts/release-prefixes.json")).join("\n"))'
echo '__EOF__'
} >> "$GITHUB_OUTPUT"
- uses: amannn/action-semantic-pull-request@0723387faaf9b38adef4775cd42cfd5155ed6017 # v5.5.3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
types: ${{ steps.types.outputs.list }}
requireScope: false
subjectPattern: ^.+$