chore(release): v2.14.58 #100
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Quality checks | |
| on: | |
| pull_request: | |
| push: | |
| branches: [main] | |
| jobs: | |
| quality: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Run Node tests | |
| run: npm test | |
| - name: Verify strict US portal coverage | |
| run: npm run verify:diversity -- --strict | |
| - name: ISO source smoke checks | |
| run: npm run smoke:iso | |
| - name: Build iso-harness configs | |
| run: npm run build:config | |
| - name: Verify expected generated files exist | |
| run: | | |
| set -e | |
| for f in \ | |
| CLAUDE.md \ | |
| AGENTS.md \ | |
| .mcp.json \ | |
| .codex/config.toml \ | |
| .codex/iso-route.md \ | |
| .cursor/mcp.json \ | |
| .cursor/rules/main.mdc \ | |
| opencode.json \ | |
| .opencode/agents/general-free.md \ | |
| .opencode/agents/general-paid.md \ | |
| .opencode/agents/glm-minimal.md \ | |
| .agents/skills/job-forge/SKILL.md \ | |
| .agents/skills/job-forge/agents/openai.yaml \ | |
| .codex/iso-route.md \ | |
| .opencode/commands/job-forge.md \ | |
| .opencode/skills/job-forge.md \ | |
| batch/codex-apply-one.prompt.md \ | |
| batch/codex-apply-outcome.schema.json | |
| do | |
| if [ ! -f "$f" ]; then | |
| echo "::error::missing expected generated client output: $f" | |
| exit 1 | |
| fi | |
| done | |
| echo "All expected ISO and client-skill outputs present." | |
| - name: Dry-run npm pack | |
| run: | | |
| # The prior build step already ran prepack's generator. Ignore | |
| # lifecycle scripts here so their logs cannot pollute the JSON. | |
| npm pack --dry-run --json --silent --ignore-scripts > "$RUNNER_TEMP/jobforge-pack.json" | |
| node -e ' | |
| const fs = require("node:fs"); | |
| const pack = JSON.parse(fs.readFileSync(process.argv[1], "utf8")); | |
| const paths = new Set(pack[0].files.map((file) => file.path)); | |
| const expected = process.argv.slice(2); | |
| const missing = expected.filter((path) => !paths.has(path)); | |
| if (missing.length) throw new Error(`npm package is missing: ${missing.join(", ")}`); | |
| ' "$RUNNER_TEMP/jobforge-pack.json" \ | |
| .agents/skills/job-forge/SKILL.md \ | |
| .agents/skills/job-forge/agents/openai.yaml \ | |
| .opencode/commands/job-forge.md \ | |
| .opencode/skills/job-forge.md | |
| echo "npm package contains every Codex/OpenCode entry point." |