-
Notifications
You must be signed in to change notification settings - Fork 1.6k
80 lines (70 loc) · 2.43 KB
/
Copy pathci.yml
File metadata and controls
80 lines (70 loc) · 2.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
name: CI
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
jobs:
pr-title:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
permissions:
pull-requests: read
steps:
- name: Validate PR title
uses: amannn/action-semantic-pull-request@v6.1.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
requireScope: false
types: |
feat
fix
docs
refactor
chore
test
ci
build
perf
revert
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
# Full history so release:validate can read the base-branch (origin/main)
# release-please manifest when checking release-as pins for staleness.
with:
fetch-depth: 0
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install
- name: Validate release metadata
run: bun run release:validate
# Canonical schema check: runs `claude plugin validate` against the
# marketplace catalog and each plugin directory (blocking, non-strict).
# The CLI must be installed via npm, not bun: `bun x` cannot run this
# package (bun blocks its required postinstall and cannot resolve its
# `claude` bin name), and `bun run` rewrites `npx` in package.json
# scripts to the broken `bun x`, so the script invokes a `claude`
# already on PATH instead.
#
# The validator version is pinned deliberately for reproducible CI: a
# floating @latest would track new upstream validation rules
# automatically but could break CI without any repo change. Bump the
# pin intentionally to adopt new `claude plugin validate` rules (and
# revisit --strict below when doing so).
#
# --strict (warnings-as-errors) should be enabled once this known
# warning is fixed:
# . -- 1 warning:
# "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead."
- name: Validate plugin schema (claude plugin validate)
run: |
npm install -g @anthropic-ai/claude-code@2.1.175
bun run plugin:validate
- name: Run tests
run: bun test