platform-codebase/.forgejo/workflows
Lilith cdbf92a34a build: migrate from pnpm to Bun, unify vite build configuration
## 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>
2026-01-26 22:47:00 -08:00
..
ci.yml build: migrate from pnpm to Bun, unify vite build configuration 2026-01-26 22:47:00 -08:00
production-deploy.yml build: migrate from pnpm to Bun, unify vite build configuration 2026-01-26 22:47:00 -08:00
README.md build: migrate from pnpm to Bun, unify vite build configuration 2026-01-26 22:47:00 -08:00
staging-deploy.yml build: migrate from pnpm to Bun, unify vite build configuration 2026-01-26 22:47:00 -08:00
staging-verify.yml build: migrate from pnpm to Bun, unify vite build configuration 2026-01-26 22:47:00 -08:00

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/packages
  • typecheck - TypeScript type checking
  • lint - ESLint
  • test - Node.js tests via turbo
  • build - Verify packages build
  • detect-python-services - Auto-discovers Python services
  • test-python-services - Matrix job testing all changed Python services
  • e2e-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 commits
  • bump-version - Increment VERSION.json
  • detect-changes - Identify changed features
  • build - 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)

  1. Create package with package.json and turbo-compatible scripts
  2. Turbo auto-detects and includes in builds
  3. Add to infrastructure reconcile for deployment

Python Service

  1. Create service with pyproject.toml
  2. Add tests/ directory with pytest tests
  3. Auto-discovered by detect-python-services job
  4. 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