diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8e0c002c..6248b539 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -85,6 +85,8 @@ jobs: frontend/coverage/** e2e: + # Run only when a Cypress suite exists in the repo. + if: ${{ hashFiles('**/cypress.config.*') != '' }} runs-on: ubuntu-latest needs: [check] @@ -136,7 +138,7 @@ jobs: npm run e2e -- --browser chrome - name: Upload Cypress artifacts - if: always() + if: failure() uses: actions/upload-artifact@v4 with: name: cypress-artifacts diff --git a/README.md b/README.md index c5b86ac2..c6556190 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@ [![CI](https://github.com/abhi1693/openclaw-mission-control/actions/workflows/ci.yml/badge.svg)](https://github.com/abhi1693/openclaw-mission-control/actions/workflows/ci.yml) - Web UI + API for operating OpenClaw: managing boards, tasks, agents, approvals, and gateway connections. ## Active development @@ -145,6 +144,14 @@ When running Cypress (`cd frontend && npm run e2e`), make sure `NEXT_PUBLIC_API_ - Testing notes: [`docs/testing/README.md`](./docs/testing/README.md) +### CI test suites (canonical commands) + +CI (`.github/workflows/ci.yml`) runs these suites on PRs: + +- **Backend**: `make backend-coverage` (includes `pytest` + coverage artifacts) +- **Frontend**: `make frontend-test` (Vitest + coverage) +- **E2E (Cypress)**: runs only when a `cypress.config.*` is present in the repo (job `e2e`). + ### Coverage policy CI enforces a **scoped 100% coverage gate** (statements + branches) for a small set of unit-testable modules.