Repository navigation
59 lines (49 loc) · 1.78 KB
/
Copy pathvalidate.yml
File metadata and controls
59 lines (49 loc) · 1.78 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
name: validate
on:
push:
pull_request:
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Manifests parse, hooks references resolve, guide present
run: node .github/scripts/manifest-check.js
- name: node --check every hook script and shipped template
run: |
set -e
shopt -s nullglob
found=0
for f in scripts/*.js templates/*.js; do
found=1
echo "checking $f"
node --check "$f"
done
if [ "$found" -eq 0 ]; then
echo "no scripts found under scripts/ or templates/"
exit 1
fi
- name: Typography check (ASCII only)
run: node .github/scripts/typography-check.js
# The protection tests push against disposable bare repositories in a
# temp directory, so git needs an identity and nothing leaves the runner.
- name: Configure git identity for the disposable-remote tests
run: |
git config --global user.email "ci@example.invalid"
git config --global user.name "Forge CI"
- name: Tests
run: node --test
# The Claude Code CLI is installable in CI as an npm package, so plugin
# validation runs as a real gate here. If that ever stops being true,
# replace this step with JSON Schema validation against
# https://json.schemastore.org/claude-code-marketplace.json rather than
# removing the check.
- name: Install Claude Code CLI
run: npm install -g @anthropic-ai/claude-code
- name: claude plugin validate --strict
run: claude plugin validate --strict .