main
yml 55 lines 1.72 KB
Raw
1 name: Squad Preview Validation
2
3 on:
4 push:
5 branches: [preview]
6
7 permissions:
8 contents: read
9
10 jobs:
11 validate:
12 runs-on: ubuntu-latest
13 steps:
14 - uses: actions/checkout@v4
15
16 - uses: actions/setup-node@v4
17 with:
18 node-version: 22
19
20 - name: Validate version consistency
21 run: |
22 VERSION=$(node -e "console.log(require('./package.json').version)")
23 if ! grep -q "## \[$VERSION\]" CHANGELOG.md 2>/dev/null; then
24 echo "::error::Version $VERSION not found in CHANGELOG.md — update CHANGELOG.md before release"
25 exit 1
26 fi
27 echo "✅ Version $VERSION validated in CHANGELOG.md"
28
29 - name: Run tests
30 run: node --test test/*.test.cjs
31
32 - name: Check no .ai-team/ or .squad/ files are tracked
33 run: |
34 FOUND_FORBIDDEN=0
35 if git ls-files --error-unmatch .ai-team/ 2>/dev/null; then
36 echo "::error::❌ .ai-team/ files are tracked on preview — this must not ship."
37 FOUND_FORBIDDEN=1
38 fi
39 if git ls-files --error-unmatch .squad/ 2>/dev/null; then
40 echo "::error::❌ .squad/ files are tracked on preview — this must not ship."
41 FOUND_FORBIDDEN=1
42 fi
43 if [ $FOUND_FORBIDDEN -eq 1 ]; then
44 exit 1
45 fi
46 echo "✅ No .ai-team/ or .squad/ files tracked — clean for release."
47
48 - name: Validate package.json version
49 run: |
50 VERSION=$(node -e "console.log(require('./package.json').version)")
51 if [ -z "$VERSION" ]; then
52 echo "::error::❌ No version field found in package.json."
53 exit 1
54 fi
55 echo "✅ package.json version: $VERSION"