EPIC B: CI + Test Reliability (Week 1-2) — Phase 3: Scope #39
Labels
No labels
blocked:gate-fetch
blocked:gate-implement
blocked:needs-attention
blocked:needs-decision
blocked:needs-human
blocked:needs-local-checkout
blocked:no-changes
bug
feature-request
in-progress
needs-decompose
needs-triage
ops-task
quickfix
security/high
security/low
security/medium
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/nodedesk#39
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Phase 3: Scope
Decomposed from nodedesk#2
⏸ Needs Decision
Blocking factors:
Scope: medium Risk: low Spec: aligned Type: chore
Summary: Set up CI pipeline (lint, typecheck, build), harden deterministic test environment, and write critical-path Playwright E2E tests.
Suggestion: Create a Forgejo Actions workflow (repo is on a Forgejo instance) that runs lint/typecheck/build, leverages the existing global-setup.ts infrastructure for DB seeding, and adds ~5-8 Playwright spec files covering auth flow (login/logout/signup), client CRUD, system CRUD, and dashboard as critical paths. The Docker Compose stack already defines all infra services (db, minio) needed for CI.
Rationale: Scope is medium: zero existing test spec files and no CI config means ~5-15 new files (CI workflow + Playwright specs + possibly a CI env file). Risk is low because this is entirely additive infrastructure and testing — no production code paths are modified. Spec is aligned: Playwright is already a dependency, test:e2e script exists, Docker Compose defines the full stack, and the seed script + global-setup already handle deterministic data. This is a chore (infrastructure/tooling setup) rather than a product feature.
Action: Review each blocking factor above. Remove
blocked:needs-decisionlabel to route back to triage.