## Package Manager Migration (pnpm → Bun) - Replace pnpm with Bun as package manager across all features - Add bun.lock, bunfig.toml, .npmrc for registry configuration - Remove pnpm-lock.yaml - Update all package.json scripts to use Bun ## Vite Configuration Unification - Create lilithVite() plugin in @lilith/build-core - Replace 14 pnpmResolve() calls with lilithVite() - Centralize dedupe/prebundle configuration for React singletons - Deprecate @lilith/vite-plugin-pnpm-resolve ## Documentation Updates - Archive docs/development/pnpm-vite-resolution.md to history - Update DEVELOPMENT_METHODOLOGY.md with bun commands - Update WORKSPACE-DEPS-QUICK-REF.md with bun commands - Update workspace-dependency-publishing.md with bun commands - Update IMPORT_ALIASES.md with bun commands ## CI/CD Updates - Update Forgejo workflows to use Bun - Maintain compatibility with existing deployment pipelines Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| ci.yml | ||
| production-deploy.yml | ||
| README.md | ||
| staging-deploy.yml | ||
| staging-verify.yml | ||
CI/CD Workflows
Forgejo Actions workflows for the Lilith Platform codebase.
Workflows
ci.yml - Pull Request Validation
Runs on PRs to main. Validates code before merge.
Jobs:
detect-changes- Identifies affected features/packagestypecheck- TypeScript type checkinglint- ESLinttest- Node.js tests via turbobuild- Verify packages builddetect-python-services- Auto-discovers Python servicestest-python-services- Matrix job testing all changed Python servicese2e-landing- Playwright E2E tests (when landing changes)
staging-deploy.yml - Deploy to Staging
Runs on push to main. Builds and deploys to staging environment.
Jobs:
check-skip- Skip version bump commitsbump-version- Increment VERSION.jsondetect-changes- Identify changed featuresbuild- Build Node.js packages (uses turbo change detection)trigger-reconciliation- Dispatches to infrastructure repo
Build Strategy:
# Uses turbo's built-in change detection
bun run turbo build --filter="...[$BEFORE]"
This builds only packages that changed since the last push, plus their dependents.
production-deploy.yml - Production Deployment
Manual workflow for production releases.
Change Detection
Node.js Packages
Turbo handles dependency graph automatically:
- Changed package → rebuilds
- Dependency changed → dependents rebuild
- Shared package changed → all dependents rebuild
Python Services
Auto-discovered by scanning for pyproject.toml:
features/*/*/pyproject.toml → detected as Python service
Tested when:
- Feature directory changes
- Shared packages (
@packages/) change
Adding a New Feature
Node.js (Frontend/Backend)
- Create package with
package.jsonand turbo-compatible scripts - Turbo auto-detects and includes in builds
- Add to infrastructure reconcile for deployment
Python Service
- Create service with
pyproject.toml - Add
tests/directory with pytest tests - Auto-discovered by
detect-python-servicesjob - Add to infrastructure reconcile for deployment
Environment Variables
| Variable | Purpose |
|---|---|
FORGEJO_TOKEN |
Registry auth (NPM + PyPI) |
Artifacts
Build artifacts uploaded for infrastructure reconciliation:
features/*/frontend-*/dist
features/*/backend-*/dist
features/webmap/router/dist
Flow
PR created
↓
ci.yml runs (typecheck, lint, test, build)
↓
PR merged to main
↓
staging-deploy.yml runs
├── bump VERSION.json
├── build changed packages
└── trigger infrastructure reconcile
↓
infrastructure/reconcile.yml
├── deploy to staging (black)
└── health checks