feat(marketing): add job board links, security promo, and agents.prot… #228
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: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| # ── SDK ──────────────────────────────────── | |
| sdk: | |
| name: SDK (Jest) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| - run: npm install | |
| working-directory: sdk | |
| - run: npm run build | |
| working-directory: sdk | |
| - run: npm test | |
| working-directory: sdk | |
| # ── Contracts ────────────────────────────── | |
| # All contract tests run in a single job because they have | |
| # cross-contract WASM dependencies (agentfeed/valid/escrow | |
| # load agentcore's WASM, agentescrow loads agentfeed's WASM). | |
| contracts: | |
| name: Contracts (all) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| # Install all contracts | |
| - run: npm install | |
| working-directory: contracts/agentcore | |
| - run: npm install | |
| working-directory: contracts/agentfeed | |
| - run: npm install | |
| working-directory: contracts/agentvalid | |
| - run: npm install | |
| working-directory: contracts/agentescrow | |
| # Build in dependency order: core → feed → valid/escrow | |
| - name: Build agentcore | |
| run: npm run build | |
| working-directory: contracts/agentcore | |
| - name: Build agentfeed | |
| run: npm run build | |
| working-directory: contracts/agentfeed | |
| - name: Build agentvalid | |
| run: npm run build | |
| working-directory: contracts/agentvalid | |
| - name: Build agentescrow | |
| run: npm run build | |
| working-directory: contracts/agentescrow | |
| # Test in dependency order | |
| - name: Test agentcore (71 tests) | |
| run: npm test | |
| working-directory: contracts/agentcore | |
| - name: Test agentfeed (16 tests) | |
| run: npm test | |
| working-directory: contracts/agentfeed | |
| - name: Test agentvalid (15 tests) | |
| run: npm test | |
| working-directory: contracts/agentvalid | |
| - name: Test agentescrow (23 tests) | |
| run: npm test | |
| working-directory: contracts/agentescrow | |
| # ── OpenClaw Plugin ──────────────────────── | |
| openclaw: | |
| name: OpenClaw (Vitest) | |
| runs-on: ubuntu-latest | |
| needs: sdk | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| # Build SDK first (openclaw depends on it) | |
| - run: npm install && npm run build | |
| working-directory: sdk | |
| # Override SDK dep to use local build | |
| - name: Link local SDK | |
| run: | | |
| npm install | |
| npm rm @xpr-agents/sdk 2>/dev/null || true | |
| npm install ../sdk | |
| working-directory: openclaw | |
| - run: npm run build | |
| working-directory: openclaw | |
| - run: npm test | |
| working-directory: openclaw | |
| # ── Indexer ──────────────────────────────── | |
| indexer: | |
| name: Indexer (Vitest) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| - run: npm install | |
| working-directory: indexer | |
| - run: npm run build | |
| working-directory: indexer | |
| - run: npm test | |
| working-directory: indexer | |
| # ── Frontend ─────────────────────────────── | |
| frontend: | |
| name: Frontend (Next.js) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| - run: npm install | |
| working-directory: frontend | |
| - run: npm run build | |
| working-directory: frontend | |
| # ── Agent Runner ─────────────────────────── | |
| agent-runner: | |
| name: Agent Runner (Build) | |
| runs-on: ubuntu-latest | |
| needs: openclaw | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| - run: npm install && npm run build | |
| working-directory: sdk | |
| - name: Build openclaw with local SDK | |
| run: | | |
| npm install | |
| npm rm @xpr-agents/sdk 2>/dev/null || true | |
| npm install ../sdk | |
| npm run build | |
| working-directory: openclaw | |
| - run: npm install && npm run build | |
| working-directory: openclaw/starter/agent | |
| # ── Docker Build ─────────────────────────── | |
| docker: | |
| name: Docker (${{ matrix.service }}) | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| needs: [sdk, contracts, openclaw, indexer, frontend] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - service: indexer | |
| context: ./indexer | |
| dockerfile: indexer/Dockerfile | |
| - service: agent | |
| context: ./openclaw/starter/agent | |
| dockerfile: openclaw/starter/agent/Dockerfile | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: docker/setup-buildx-action@v3 | |
| - uses: docker/build-push-action@v5 | |
| with: | |
| context: ${{ matrix.context }} | |
| file: ${{ matrix.dockerfile }} | |
| push: false | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max |