Skip to content

feat(backend): CI/CD pipeline - GitHub Actions for test, build, deploy#1

Closed
Philip-D21 wants to merge 3 commits into
mainfrom
feat/ci-cd-pipeline
Closed

feat(backend): CI/CD pipeline - GitHub Actions for test, build, deploy#1
Philip-D21 wants to merge 3 commits into
mainfrom
feat/ci-cd-pipeline

Conversation

@Philip-D21

@Philip-D21 Philip-D21 commented Jun 24, 2026

Copy link
Copy Markdown
Owner

Summary

Sets up a complete CI/CD pipeline covering lint, typecheck, test, build, Docker image, and progressive deployment.

Changes

CI (.github/workflows/ci.yml)

  • lint — ESLint on every PR
  • typechecktsc --noEmit catches type errors early
  • test — Vitest with JUnit report artifact
  • env-check — validates no placeholder REPLACE_WITH_* vars in .env.example
  • build — Next.js build with cached .next/cache, waits on Phase 1 gates
  • docker — Builds + pushes to ghcr.io on main merge, with Trivy vulnerability scan

Deploy (.github/workflows/deploy.yml)

  • Progressive: staging → smoke tests → production → smoke tests
  • GitHub Environments for approval gates on production
  • workflow_dispatch support for manual deploys

Infrastructure

  • Dockerfile — Multi-stage Next.js build (standalone output, non-root user)
  • .dockerignore — Prunes build context
  • vitest.config.ts — Test configuration with path aliases
  • Package scripts: test, test:watch, test:ui, typecheck, lint:strict

Bug fixes

  • Fixed trailing comma lint error in adminAnalytics.ts
  • Fixed formatCredits rounding bug in projectFilters.ts
  • Removed deprecated .eslintignore (ESLint v9 no longer supports it)

Closes Farm-credit#556

... added 3 commits June 24, 2026 18:23
- ci.yml: lint, typecheck, test, build quality gates on every PR
- ci.yml: Docker build + Trivy scan on merge to main (pushed to ghcr.io)
- deploy.yml: progressive staging → smoke tests → production delivery
- vitest.config.ts + test scripts for unit testing infrastructure
- Dockerfile: multi-stage Next.js build with standalone output
- Fix lint error (trailing comma in adminAnalytics.ts)
- Fix test failure (formatCredits rounding)
- Remove deprecated .eslintignore
- Add typecheck & lint:strict scripts

Closes Farm-credit#556
- Remove explicit Node version (runner now defaults to Node 24)
- Remove explicit pnpm version (read from packageManager in package.json)
- Fixes 'Multiple versions of pnpm specified' error and Node 20 deprecation warning
@Philip-D21

Copy link
Copy Markdown
Owner Author

Superseded by Farm-credit#563

@Philip-D21 Philip-D21 closed this Jun 24, 2026
Philip-D21 pushed a commit that referenced this pull request Jun 27, 2026
…nner-atoms

Implementing Textarea and Spinner loading indicator atoms
Philip-D21 pushed a commit that referenced this pull request Jun 28, 2026
…ng-region-map-2

feat: wire live privacy-preserving region map
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.

feat(backend): CI/CD pipeline - GitHub Actions for test, build, deploy

1 participant