fix(ci): fail loudly on MCP registry publish errors (was masked by ||… #245
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: Integrations CI — Core | |
| on: | |
| push: | |
| branches: [main, 'feature/integrations-*'] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| shared-infra: | |
| name: Shared test-utils | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - run: cd shared/test-utils && npm ci && npm test | |
| phase-1-docker: | |
| name: Phase 1B — Docker image build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Build Docker image | |
| run: docker build -t grasp-test docker/ 2>/dev/null || echo "docker/ not yet created" | |
| - name: Smoke test | |
| run: docker run grasp-test grasp --version 2>/dev/null || echo "skip — docker/ not yet created" | |
| phase-1-homebrew: | |
| name: Phase 1A — Homebrew formula audit | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Audit formula | |
| run: | | |
| if [ -f homebrew-formula/grasp.rb ]; then | |
| brew ruby -e "require 'formula'; puts 'formula ok'" || true | |
| else | |
| echo "homebrew-formula/ not yet created, skipping" | |
| fi | |
| phase-2-github-action: | |
| name: Phase 2A — GitHub Action tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Test GitHub Action | |
| env: | |
| INPUT_TOKEN: dummy-token-for-tests | |
| INPUT_THRESHOLD: D | |
| INPUT_POST_COMMENT: 'false' | |
| run: | | |
| if [ -f github-action/package.json ]; then | |
| cd github-action && npm ci && npm test | |
| else | |
| echo "github-action/ not yet created, skipping" | |
| fi | |
| phase-2-gitlab-ci: | |
| name: Phase 2B — GitLab CI component | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Test GitLab CI component | |
| run: | | |
| if [ -f gitlab-ci-component/package.json ]; then | |
| cd gitlab-ci-component && npm ci && npm test | |
| else | |
| echo "gitlab-ci-component/ not yet created, skipping" | |
| fi | |
| phase-3-bots: | |
| name: Phase 3 — Communication bots | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Test Teams bot | |
| run: | | |
| if [ -f teams-bot/package.json ]; then | |
| cd teams-bot && npm ci && npm test | |
| else | |
| echo "teams-bot/ not yet created, skipping" | |
| fi | |
| - name: Test Discord bot | |
| run: | | |
| if [ -f discord-bot/package.json ]; then | |
| cd discord-bot && npm ci && npm test | |
| else | |
| echo "discord-bot/ not yet created, skipping" | |
| fi | |
| phase-4-sources: | |
| name: Phase 4 — MCP source adapters | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Test MCP sources | |
| run: | | |
| if [ -f mcp/package.json ]; then | |
| cd mcp && npm ci --legacy-peer-deps && npm test -- --testPathPattern="sources/" 2>/dev/null || echo "no source tests yet" | |
| fi | |
| phase-4-gitea-e2e: | |
| name: Phase 4C — Gitea E2E | |
| runs-on: ubuntu-latest | |
| services: | |
| gitea: | |
| image: gitea/gitea:latest | |
| ports: | |
| - 3000:3000 | |
| env: | |
| GITEA__database__DB_TYPE: sqlite3 | |
| GITEA__server__HTTP_PORT: 3000 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Wait for Gitea | |
| run: | | |
| for i in $(seq 1 20); do | |
| curl -sf http://localhost:3000 && break || sleep 3 | |
| done | |
| - name: Run Gitea E2E tests | |
| run: | | |
| if [ -f mcp/package.json ]; then | |
| cd mcp && npm ci --legacy-peer-deps && GITEA_URL=http://localhost:3000 npm test -- --testPathPattern="gitea" 2>/dev/null || echo "no gitea tests yet" | |
| fi |