Skip to content

Fix GitHub Actions CI: lockfile, Node 24 transition, ESLint flat config, lint errors#10

Merged
Chamudu merged 3 commits into
mainfrom
copilot/fix-ci-workflow-swiftlogistics
Apr 13, 2026
Merged

Fix GitHub Actions CI: lockfile, Node 24 transition, ESLint flat config, lint errors#10
Chamudu merged 3 commits into
mainfrom
copilot/fix-ci-workflow-swiftlogistics

Conversation

Copilot AI commented Apr 13, 2026

Copy link
Copy Markdown
Contributor

CI was failing at the dependency install step (no committed lockfile) and would have subsequently failed on lint (broken ESLint flat config). Addresses both blockers and cleans up pre-existing lint errors that would surface once install was fixed.

Lockfile & workspaces

  • Removed package-lock.json from .gitignore and committed the generated root lockfile so npm ci works
  • Added client-app to root package.json workspaces array (was missing, so workspace deps were never hoisted)

CI workflow

  • Added FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true at workflow level to opt into the upcoming Actions Node 24 runtime now

ESLint flat config fix

eslint.config.js referenced a non-existent API path:

// Before — runtime TypeError: Cannot read properties of undefined (reading 'recommended')
reactHooks.configs.flat.recommended

// After — correct flat config export in eslint-plugin-react-hooks v5.x
reactHooks.configs['recommended-latest']

Lint errors (pre-existing, unblocked by the above)

  • Navbar.jsx — removed unused logout, navigate, LogOut, useNavigate
  • Dashboard.jsx — removed dead getEventIcon function and its orphaned CheckCircle/AlertCircle imports
  • AuthContext.jsx / ThemeContext.jsx — added eslint-disable-next-line react-refresh/only-export-components on hook exports (standard context pattern, not an HMR bug)
  • Orders.jsx — removed unused event param from update callback
  • Warehouse.jsx — changed catch (err)catch {} (binding never read)
  • socket.js — removed unused err param from connect_error handler
Original prompt

Fix GitHub Actions CI workflow for SwiftLogistics.

Context:

  • A workflow was added to run on push/PR, install npm workspace dependencies, lint and build client-app, and validate docker-compose.yml.
  • CI is currently failing with:
    1. Dependencies lock file is not found ... Supported file patterns: package-lock.json,npm-shrinkwrap.json,yarn.lock (because workflow uses npm ci and/or actions/setup-node cache expects a lockfile).
    2. Warning about GitHub Actions moving from Node.js 20 to Node.js 24 for JavaScript actions (actions/checkout@v4, actions/setup-node@v4). This is informational but should be addressed by opting into Node 24 now.

Requirements:

  1. Ensure the repository has an npm lockfile strategy compatible with CI:
    • Prefer adding a root package-lock.json committed to the repo (npm workspaces supported) so npm ci works deterministically.
    • Alternatively, if lockfile is intentionally not used, update workflow to use npm install and disable npm cache in setup-node to avoid lockfile requirement.
    • Choose the best approach for a monorepo with npm workspaces.
  2. Update workflow to be future-proof with GitHub Actions Node 24 transition:
    • Set env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true at workflow/job level.
    • Keep using actions/checkout@v4 and actions/setup-node@v4.
  3. Keep CI meaningfully validating the repo:
    • Install dependencies for workspaces.
    • Run npm run lint --workspace client-app.
    • Run npm run build --workspace client-app.
    • Run docker compose config -q.
  4. Add/adjust documentation if helpful (e.g., README section about generating lockfile).

Deliverables:

  • PR to Chamudu/SwiftLogistics against main with the updated workflow and any necessary lockfile/changes.
  • CI should pass on GitHub Actions.

Notes:

  • Repo is an npm workspaces monorepo with root package.json workspaces and client-app workspace containing lint and build scripts.

The following is the prior conversation context from the user's chat exploration (may be truncated):

User: check with the repos. and remake the cv

Assistant: ### Repo cross-check (what your GitHub proves vs what your CV claims)

1) SwiftLogistics (public) — strong match, keep as flagship

Repo: https://github.com/Chamudu/SwiftLogistics
Your CV claims (14+ services, REST/SOAP/TCP adapters, RabbitMQ, SAGA, JWT/RBAC, Socket.IO, React dashboard) are directly supported by the repo README:

  • Microservices (14+), protocol adapters, workers, API gateway
  • RabbitMQ async + request/reply pattern
  • SAGA orchestrator called out (Order Service)
  • JWT auth + role middleware
  • Docker Compose + tests (test-auth.js, test-all-protocols.js, test-gateway.js)
  • Architecture docs exist (ARCHITECTURE.md, API.md, etc.)

Improvement area (CV + repo alignment):

  • In CV, add evidence numbers you already have in README: “3 exchanges, 11 queues”, ports, test scripts.
  • Replace “Built from scratch” style bullets with “Implemented X + tested by Y” bullets.

2) VillageCare (private) — strong project, but ATS risk

Repo is private: https://github.com/Chamudu/VillageCare (homepage shows deployed app)
Your CV claims (custom PHP MVC, middleware pipeline, CSRF, multi-role sessions, Leaflet/Chart.js, normalized DB) are supported by the README, including:

  • Custom MVC structure + security features
  • Multi-role auth + email-based 2FA, bcrypt, rate limiting, CSRF
  • Big feature scope + DB schema
  • Nice engineering detail: GN controller refactored into modular traits, with limitations documented.

Big issue: because it’s private, recruiters can’t verify code.
Fix: in CV, mark it clearly as “Private repo (demo available)” and link the live site:

Also, your own docs mention a limitation: “some traits contain raw SQL; move to models.” That’s a real, credible improvement point you can talk about in interviews.

3) NexusEnroll (public) — CV currently overstates “3 microservices”

Repo: https://github.com/Chamudu/NexusEnroll
Your CV says: “three independent Flask microservices (Student, Course, Enrollment)”.
But your README shows:

  • Auth service fully implemented
  • Student service basic
  • Course/Enrollment mostly planned

So this is the main mismatch.

Fix (CV): rewrite NexusEnroll bullets to match the repo truth:

  • “Built an authentication microservice (Flask) with RBAC, account lockout, session expiry, and automated tests.”
  • “Set up microservices skeleton + shared utilities; implemented Student service baseline; documented planned services.”

That makes you look honest and still strong.

4) c-parser (public) — good match

Repo: https://github.com/Chamudu/c-parser
Your CV claims recursive descent parser + lexical analysis + tests. Repo supports:

  • Lexer, AST parser, semantic checks, interpreter pipeline
  • Clear grammar + run instructions

Improve: add one bullet emphasizing “e...

This pull request was created from Copilot chat.

Copilot AI changed the title [WIP] Fix GitHub Actions CI workflow for SwiftLogistics Fix GitHub Actions CI: lockfile, Node 24 transition, ESLint flat config, lint errors Apr 13, 2026
Copilot AI requested a review from Chamudu April 13, 2026 07:32
@Chamudu Chamudu marked this pull request as ready for review April 13, 2026 07:32
@Chamudu Chamudu merged commit 1e55cfe into main Apr 13, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants