Add frontend lint to CI; indexer-first Anvil E2E; workflow defaults #322

Closed
opened 2026-06-13 07:34:28 +00:00 by PlasticDigits · 14 comments
PlasticDigits commented 2026-06-13 07:34:28 +00:00 (Migrated from gitlab.com)

Parent

Gap analysis follow-up from #309.

Current codebase

  • .github/workflows/unit-tests.yml job frontend-test: runs typecheck + npm test — no npm run lint (AGENTS.md and INV-FRONTEND-301 expect lint).
  • .github/workflows/e2e-anvil.yml: workflow_dispatch only; not merge gate.
  • scripts/e2e-anvil.sh L127–128: export VITE_INDEXER_URL= (empty) — E2E never exercises indexer-first display (#301).
  • anvil-referrals.spec.ts exists but may be excluded from default E2E run per gap report.

GitLab: No .gitlab-ci.yml; repo hosted on GitLab; CI runs on GitHub Actions. Approved: document minimal GitLab CI strategy (not duplicate heavy GitHub jobs on GitLab runners).

Why needed

Approved: Add lint to CI; fix indexer-first E2E; improve Anvil E2E defaults (include referrals). Document GitLab vs GitHub CI posture.

Constraints / guardrails

  • Keep GitLab CI minimal — do not add Anvil+Postgres/Stage 2 to GitLab (rejected in #309).
  • Lint must pass clean (fix 21 warnings in frontend issue or gate only on errors first).
  • e2e-anvil.sh should set VITE_INDEXER_URL when indexer spawned, or document dual-mode.

Relevant files

  • .github/workflows/unit-tests.yml
  • .github/workflows/e2e-anvil.yml
  • scripts/e2e-anvil.sh
  • frontend/e2e/anvil-referrals.spec.ts
  • docs/testing/ci.md, docs/testing/e2e-anvil.md
  • AGENTS.md verification table
  1. Add npm run lint to frontend-test job (fix warnings first or --max-warnings 0 after cleanup).
  2. Extend e2e-anvil.sh optional full-stack mode: start indexer, set VITE_INDEXER_URL, smoke indexer-first static assertions.
  3. Include anvil-referrals.spec.ts in default Anvil E2E suite.
  4. Update docs/testing/ci.md: GitLab is canonical host; GitHub Actions runs merge gate; GitLab CI stays minimal/absent by design.

Acceptance criteria

  • frontend-test runs lint.
  • E2E path documents and implements indexer-first mode.
  • anvil-referrals.spec.ts runs in default e2e-anvil.sh flow.
  • ci.md explains GitLab/GitHub split.

Test plan

  • CI: push to branch and verify frontend-test green.
  • bash scripts/e2e-anvil.sh with indexer mode.
  • cd frontend && npm run lint.

Attack / abuse test plan

  • N/A (CI); ensure E2E does not embed production secrets.

Verification criteria

  • GitHub Actions log shows lint step.
  • E2E with indexer URL passes indexerFirstDisplay smoke or dedicated spec.
## Parent Gap analysis follow-up from [#309](https://gitlab.com/PlasticDigits/yieldomega/-/issues/309). ## Current codebase - `.github/workflows/unit-tests.yml` job `frontend-test`: runs `typecheck` + `npm test` — **no `npm run lint`** (AGENTS.md and `INV-FRONTEND-301` expect lint). - `.github/workflows/e2e-anvil.yml`: `workflow_dispatch` only; not merge gate. - `scripts/e2e-anvil.sh` L127–128: `export VITE_INDEXER_URL=` (empty) — E2E never exercises indexer-first display (#301). - `anvil-referrals.spec.ts` exists but may be excluded from default E2E run per gap report. **GitLab:** No `.gitlab-ci.yml`; repo hosted on GitLab; CI runs on GitHub Actions. Approved: document minimal GitLab CI strategy (not duplicate heavy GitHub jobs on GitLab runners). ## Why needed Approved: Add lint to CI; fix indexer-first E2E; improve Anvil E2E defaults (include referrals). Document GitLab vs GitHub CI posture. ## Constraints / guardrails - **Keep GitLab CI minimal** — do not add Anvil+Postgres/Stage 2 to GitLab (rejected in #309). - Lint must pass clean (fix 21 warnings in frontend issue or gate only on errors first). - `e2e-anvil.sh` should set `VITE_INDEXER_URL` when indexer spawned, or document dual-mode. ## Relevant files - `.github/workflows/unit-tests.yml` - `.github/workflows/e2e-anvil.yml` - `scripts/e2e-anvil.sh` - `frontend/e2e/anvil-referrals.spec.ts` - `docs/testing/ci.md`, `docs/testing/e2e-anvil.md` - `AGENTS.md` verification table ## Recommended direction 1. Add `npm run lint` to `frontend-test` job (fix warnings first or `--max-warnings 0` after cleanup). 2. Extend `e2e-anvil.sh` optional full-stack mode: start indexer, set `VITE_INDEXER_URL`, smoke indexer-first static assertions. 3. Include `anvil-referrals.spec.ts` in default Anvil E2E suite. 4. Update `docs/testing/ci.md`: GitLab is canonical host; GitHub Actions runs merge gate; GitLab CI stays minimal/absent by design. ## Acceptance criteria - [ ] `frontend-test` runs lint. - [ ] E2E path documents and implements indexer-first mode. - [ ] `anvil-referrals.spec.ts` runs in default `e2e-anvil.sh` flow. - [ ] `ci.md` explains GitLab/GitHub split. ## Test plan - CI: push to branch and verify `frontend-test` green. - `bash scripts/e2e-anvil.sh` with indexer mode. - `cd frontend && npm run lint`. ## Attack / abuse test plan - N/A (CI); ensure E2E does not embed production secrets. ## Verification criteria - GitHub Actions log shows lint step. - E2E with indexer URL passes `indexerFirstDisplay` smoke or dedicated spec.
PlasticDigits commented 2026-06-13 07:34:44 +00:00 (Migrated from gitlab.com)

mentioned in issue #309

mentioned in issue #309
PlasticDigits commented 2026-06-13 13:04:53 +00:00 (Migrated from gitlab.com)

mentioned in commit 93c0cff974

mentioned in commit 93c0cff9748434bc4f518cb404fbcd7def1f32bc
PlasticDigits commented 2026-06-13 13:05:02 +00:00 (Migrated from gitlab.com)

mentioned in merge request !470

mentioned in merge request !470
project_80561744_bot_5118c68a88bff95eacb6ab1c47c19cae commented 2026-06-13 13:07:10 +00:00 (Migrated from gitlab.com)

mentioned in commit 3615a4fe35

mentioned in commit 3615a4fe35cf3cafdd69093edb6f299d8bbc82ec
PlasticDigits commented 2026-06-13 14:10:23 +00:00 (Migrated from gitlab.com)

mentioned in commit 8dd5705214

mentioned in commit 8dd5705214196809a61134461e8b737f83eae5b7
PlasticDigits commented 2026-06-14 02:59:44 +00:00 (Migrated from gitlab.com)

mentioned in commit ce43305a60

mentioned in commit ce43305a60144768b7bd4fc3342acd114a61e373
PlasticDigits commented 2026-06-14 02:59:54 +00:00 (Migrated from gitlab.com)

mentioned in merge request !483

mentioned in merge request !483
PlasticDigits commented 2026-06-14 05:31:54 +00:00 (Migrated from gitlab.com)

mentioned in commit 6b857630a5

mentioned in commit 6b857630a545c0b1af9d175f41b6f5886bc7956f
PlasticDigits commented 2026-06-14 05:54:37 +00:00 (Migrated from gitlab.com)

mentioned in merge request !490

mentioned in merge request !490
PlasticDigits commented 2026-06-14 06:55:34 +00:00 (Migrated from gitlab.com)

mentioned in commit 7495a1c264

mentioned in commit 7495a1c264a2cf63a0716b788310411d6bbc9f3b
PlasticDigits commented 2026-06-14 07:11:58 +00:00 (Migrated from gitlab.com)

mentioned in commit 52b7512136

mentioned in commit 52b7512136850486702b49f957d536b91adfd30a
PlasticDigits commented 2026-06-14 13:00:49 +00:00 (Migrated from gitlab.com)

mentioned in merge request !496

mentioned in merge request !496
PlasticDigits commented 2026-06-14 13:32:11 +00:00 (Migrated from gitlab.com)

mentioned in commit f83ad52f7b

mentioned in commit f83ad52f7bee79c73e0b8898e722adbfd2e053ce
PlasticDigits commented 2026-06-14 13:51:15 +00:00 (Migrated from gitlab.com)

Verification complete — GitLab #322

Verified on main @ 2026-06-14. No repo changes required; closing issue.

Acceptance criteria

Criterion Result How verified
frontend-test runs lint PASS .github/workflows/unit-tests.yml L106: npm run lint after typecheck. Local: cd frontend && npm run lint — 0 errors, 2 warnings (allowed per INV-CI-322-FRONTEND-LINT).
E2E documents + implements indexer-first mode PASS docs/testing/e2e-anvil.md § indexer-first vs minimal; scripts/e2e-anvil.sh YIELDOMEGA_E2E_INDEXER=1 starts Postgres indexer, sets VITE_INDEXER_URL, runs e2e/anvil-indexer-first.spec.ts. YIELDOMEGA_E2E_INDEXER=1 bash scripts/e2e-anvil.sh — 8 passed (incl. indexer-first spec).
anvil-referrals.spec.ts in default E2E flow PASS bash scripts/e2e-anvil.sh — Playwright specs e2e/anvil-arena-*.spec.ts e2e/anvil-referrals.spec.ts; referrals spec ✓ (7 passed total).
ci.md explains GitLab/GitHub split PASS docs/testing/ci.md § GitLab vs GitHub CI (#322); no .gitlab-ci.yml on disk. Invariants: INV-DEVOPS-322-GITLAB-CI-MINIMAL.

Verification criteria (issue body)

Item Result How verified
GitHub Actions log shows lint step SKIP Cannot push to GitHub from this Cloud VM; workflow source confirms lint step. Local lint parity matches CI job.
E2E with indexer URL passes indexer-first smoke PASS anvil-indexer-first.spec.ts ✓ (indexer status bar, protocol podiums, timer epoch). Unit: indexerFirstDisplay.test.ts — 9/9 passed.

Infra used

  • Native Postgres :5433 — bash scripts/verify-cloud-postgres.sh PASS
  • Foundry Anvil --code-size-limit 524288 via scripts/e2e-anvil.sh
  • Indexer on :3100 for indexer-first run
## Verification complete — GitLab #322 Verified on `main` @ `2026-06-14`. No repo changes required; closing issue. ### Acceptance criteria | Criterion | Result | How verified | |-----------|--------|--------------| | `frontend-test` runs lint | **PASS** | [`.github/workflows/unit-tests.yml`](.github/workflows/unit-tests.yml) L106: `npm run lint` after typecheck. Local: `cd frontend && npm run lint` — 0 errors, 2 warnings (allowed per `INV-CI-322-FRONTEND-LINT`). | | E2E documents + implements indexer-first mode | **PASS** | [`docs/testing/e2e-anvil.md`](docs/testing/e2e-anvil.md) § indexer-first vs minimal; [`scripts/e2e-anvil.sh`](scripts/e2e-anvil.sh) `YIELDOMEGA_E2E_INDEXER=1` starts Postgres indexer, sets `VITE_INDEXER_URL`, runs `e2e/anvil-indexer-first.spec.ts`. `YIELDOMEGA_E2E_INDEXER=1 bash scripts/e2e-anvil.sh` — 8 passed (incl. indexer-first spec). | | `anvil-referrals.spec.ts` in default E2E flow | **PASS** | `bash scripts/e2e-anvil.sh` — Playwright specs `e2e/anvil-arena-*.spec.ts e2e/anvil-referrals.spec.ts`; referrals spec ✓ (7 passed total). | | `ci.md` explains GitLab/GitHub split | **PASS** | [`docs/testing/ci.md`](docs/testing/ci.md) § GitLab vs GitHub CI (#322); no `.gitlab-ci.yml` on disk. Invariants: `INV-DEVOPS-322-GITLAB-CI-MINIMAL`. | ### Verification criteria (issue body) | Item | Result | How verified | |------|--------|--------------| | GitHub Actions log shows lint step | **SKIP** | Cannot push to GitHub from this Cloud VM; workflow source confirms lint step. Local lint parity matches CI job. | | E2E with indexer URL passes indexer-first smoke | **PASS** | `anvil-indexer-first.spec.ts` ✓ (indexer status bar, protocol podiums, timer epoch). Unit: `indexerFirstDisplay.test.ts` — 9/9 passed. | ### Infra used - Native Postgres `:5433` — `bash scripts/verify-cloud-postgres.sh` PASS - Foundry Anvil `--code-size-limit 524288` via `scripts/e2e-anvil.sh` - Indexer on `:3100` for indexer-first run
PlasticDigits (Migrated from gitlab.com) closed this issue 2026-06-14 13:51:16 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
code/yieldomega#322
No description provided.