Skip to content
This repository was archived by the owner on Jul 11, 2026. It is now read-only.
This repository was archived by the owner on Jul 11, 2026. It is now read-only.

ELUSoC_2026 — Add CI lint and build validation workflow for all workspaces #254

Description

@Babin123456

Problem

The Gamify repository currently has a deploy.yml workflow that only runs on pushes to main to deploy to Cloudflare. There is no CI workflow that validates code quality (linting) or build correctness on pull requests or feature branches.

Current Behavior

  • Pull requests merge without any automated lint or build checks.
  • A broken client build or lint error can silently land on main and break the deployment pipeline.
  • Contributors have no automated feedback on code quality before a maintainer reviews their PR.

Why This Improvement Is Needed

  • Catches regressions early — broken builds are flagged before they reach reviewers.
  • Enforces the ESLint rules already configured in client/eslint.config.js.
  • Improves contributor experience: authors receive instant CI feedback on their branches.
  • Follows open-source best practices for monorepo projects.

Proposed Solution

Add a new .github/workflows/ci.yml workflow that:

  1. Runs on every push (all branches) and every PR targeting main.
  2. Installs dependencies and runs npm run lint for the client workspace.
  3. Runs npm run build for the client to catch Vite build failures.
  4. Runs npm run lint --if-present for server and bot workspaces.
  5. Uses actions/setup-node@v4 with npm caching per workspace.

Expected Outcome

  • Every PR receives automated lint and build status checks.
  • Maintainers can require the CI job to pass before merging.
  • Contributors see immediate feedback on their branches.

Additional Notes

  • The workflow uses npm ci (not npm install) for reproducible installs.
  • Each workspace (client, server, bot) runs as an independent parallel job.
  • No secrets are required for lint/build — the workflow is safe for fork PRs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions