diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7f81f5a..b6ddd56 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,5 +12,24 @@ jobs: - uses: actions/setup-node@v4 with: node-version: '22' + - name: JSONs válidos + versões plugin.json ↔ marketplace.json + run: | + node -e ' + const fs = require("fs"); + const mp = JSON.parse(fs.readFileSync(".claude-plugin/marketplace.json", "utf8")); + let fail = 0; + for (const p of mp.plugins) { + // source em objeto = plugin externo (github/url), versionado upstream: + // não existe plugin.json local para comparar. + if (typeof p.source !== "string") continue; + const pj = JSON.parse(fs.readFileSync(`${p.source.replace(/^\.\//,"")}/.claude-plugin/plugin.json`, "utf8")); + if (pj.version !== p.version) { + console.error(`DRIFT: ${p.name} plugin.json=${pj.version} marketplace=${p.version}`); + fail = 1; + } + } + process.exit(fail); + ' + - name: Suíte de testes run: tests/run-all.sh