Skip to content

Merge pull request #21 from RevenueCat/jfg/experiment-analysis-skill #41

Merge pull request #21 from RevenueCat/jfg/experiment-analysis-skill

Merge pull request #21 from RevenueCat/jfg/experiment-analysis-skill #41

Workflow file for this run

name: Validate manifests and build
on:
pull_request:
push:
branches: [main]
tags: ['v*']
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
- name: Set up Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: '20'
- name: Validate JSON manifests
run: |
for f in \
.claude-plugin/marketplace.json \
.cursor-plugin/marketplace.json \
.agents/plugins/marketplace.json \
revenuecat/.claude-plugin/plugin.json \
revenuecat/.cursor-plugin/plugin.json \
revenuecat/.codex-plugin/plugin.json \
revenuecat/gemini-extension.json \
revenuecat-play-billing/.claude-plugin/plugin.json \
revenuecat-play-billing/.cursor-plugin/plugin.json \
revenuecat-play-billing/.codex-plugin/plugin.json; do
echo "Validating $f..."
node -e "JSON.parse(require('fs').readFileSync('$f','utf8'))" \
&& echo " OK" \
|| { echo " INVALID JSON: $f"; exit 1; }
done
- name: Validate Claude marketplace schema
run: |
npm install -g ajv-cli
curl -fsSL https://json.schemastore.org/claude-code-marketplace.json -o /tmp/claude-marketplace-schema.json || true
if [ -f /tmp/claude-marketplace-schema.json ]; then
ajv validate -s /tmp/claude-marketplace-schema.json -d .claude-plugin/marketplace.json && echo "Schema valid" || echo "Schema validation failed (non-blocking)"
else
echo "Could not fetch schema — skipping schema validation"
fi