fix(deploy): expand sparse checkout so microservices deploy (run #120 fix) #103
No reviewers
Labels
No labels
bug
claude-failed
claude-pr
claude-queue
claude-working
epic
feature
interactive
portal
triaged
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: shad0w/pelagia-portal#103
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/deploy-services-sparse-checkout"
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?
Root cause of the failed
v0.3.0deploy (run #120)The microservice step logged:
Every service folder and the root
ecosystem.config.jswere missing from~/pms, even though they're in the tag. The app deploys fine and prod stayed healthy (/login→ 200) because~/pmsis a sparse checkout limited toApp/— historically only the app deployed, sogit checkout -f $TAGnever materialised anything outsideApp/. It was never a port clash or build error.Fix
In
deploy.yml, before managing services:git sparse-checkout disable(+ clear the legacycore.sparseCheckoutconfig and.git/info/sparse-checkout), then re-checkout the tag to materialise the full tree. Idempotent — a no-op once expanded, and harmless if the checkout was never sparse.ecosystem.config.jsis somehow still absent, fail with a clear diagnostic (andsparse-checkout list) instead of the cryptic[PM2][ERROR].To verify / re-deploy
This only changes the workflow, so it needs a fresh tag to re-run:
Watch run under Actions. On that run the step should now print
=== Building GstService ===/EpfoServiceand bring them up under pm2 (gst-service:3003,epfo-service:3004), then health-check them. PdfService is still skipped until #101 merges.One independent caveat still stands from #102: if GstService/EpfoService were already running on pms1 under different pm2 names, delete those once (
pm2 delete <old> && pm2 save) so the canonical names can bind their ports.🤖 Generated with Claude Code