-
Notifications
You must be signed in to change notification settings - Fork 1
67 lines (67 loc) · 2.66 KB
/
Copy pathsync-plugins.yml
File metadata and controls
67 lines (67 loc) · 2.66 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
name: sync-marketplace-from-sources
on:
schedule:
- cron: "*/10 * * * *" # every 10 min — keep rolling commit hashes fresh
workflow_dispatch: {}
push:
branches: [main]
paths:
- ".claude-plugin/marketplace.json"
- ".grok-plugin/marketplace.json"
- "scripts/sync_marketplace.py"
- "scripts/build_readme.py"
- "scripts/generate-grok-catalog.py"
- "scripts/generate-grok-plugin-index.py"
- "scripts/check-grok-pins-fresh.py"
- "scripts/run-official-grok-validate.sh"
- "scripts/vendor/**"
- "scripts/stranger-smoke.sh"
permissions:
contents: write
jobs:
sync:
runs-on: ${{ vars.RUNNER || 'ubuntu-latest' }}
steps:
- uses: actions/checkout@v7.0.0
- uses: actions/setup-python@v6.3.0
with:
python-version: "3.13"
- name: Sync marketplace metadata from each plugin source
env:
GITHUB_TOKEN: ${{ github.token }}
run: python scripts/sync_marketplace.py
- name: Regenerate README from the catalog
env:
GITHUB_TOKEN: ${{ github.token }}
run: python scripts/build_readme.py
- name: Generate Grok catalog (shas + keywords from Claude catalog)
run: python scripts/generate-grok-catalog.py
- name: Generate Grok plugin index (rich components for TUI Marketplace)
run: python scripts/generate-grok-plugin-index.py
- name: Validate catalogs (Grok SHA pins + Claude/Grok parity)
run: python scripts/validate-catalog.py
- name: Verify plugin-index is current
run: python scripts/generate-grok-plugin-index.py --check
- name: Official Grok catalog validate (.grok-plugin only)
run: bash scripts/run-official-grok-validate.sh
- name: Pin freshness (sha == origin HEAD)
run: python scripts/check-grok-pins-fresh.py
- name: Commit if changed
run: |
if ! git diff --quiet -- .claude-plugin/marketplace.json .grok-plugin/ README.md; then
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add .claude-plugin/marketplace.json .grok-plugin/ README.md
git commit -m "chore: auto-sync catalog + regenerate README + Grok plugin-index"
# Concurrent schedule + dispatch + path-push races are common; rebase and retry.
for i in 1 2 3; do
if git push; then
exit 0
fi
echo "push rejected (race), pull --rebase attempt $i"
git pull --rebase origin main
done
exit 1
else
echo "already in sync"
fi