Skip to content

CI/CD Pipeline

Current Reality: Manual Deploy, Branch Previews

Section titled “Current Reality: Manual Deploy, Branch Previews”

Convertella does not have a fully automated CI/CD pipeline yet. The current workflow relies on Cloudflare Pages branch previews and manual production deploys:

Push branch → Pages builds preview URL (automatic) → Manual testing
↓
Merge to default → Manual production deploy (`npm run deploy:pages:prod`)
↓
Manual production migration (`npm run db:migrate`)
StepAutomation
Branch preview builds✅ Automatic (Cloudflare Pages)
Type checking❌ Manual (npx astro check)
Linting❌ Manual (npm run lint)
Unit tests❌ Manual (npm run test)
Production deploy❌ Manual (npm run deploy:pages:prod)
Database migrations❌ Manual (npm run db:migrate)
Smoke test❌ Manual (npm run test:smoke)

Once CI is set up via GitHub Actions, the pipeline will follow this flow:

flowchart LR
Push[Push to branch] --> Preview[Pages preview build]
Preview --> Test[Auto-run tests]
Test --> Merge[Merge to default]
Merge --> ProdDeploy[Manual production deploy]

Planned CI Workflow (.github/workflows/ci.yml)

Section titled “Planned CI Workflow (.github/workflows/ci.yml)”
  1. Checkout & Setup — Node 22, npm cache
  2. Lint — npm run lint (ESLint)
  3. Type Check — npx astro check
  4. Test — npm run test (Vitest)
  5. Build — npm run build
  6. Deploy (testing) — Automatic to Pages default branch
  7. Smoke Test — npm run test:smoke
  1. All tests pass on the default branch
  2. Create a release tag (git tag v0.8.0 && git push origin v0.8.0)
  3. Run production database migrations
  4. Deploy production (npm run deploy:pages:prod)
  5. Post-release verification in production preview

Rollback means redeploying the previous production deployment via Cloudflare Pages dashboard. If a migration is not backward-compatible, the release is not rollback-safe — prefer additive schema changes.

To move from manual to automated CI, you need:

  1. A .github/workflows/ci.yml file in the platform repository
  2. A Neon testing database with CI credentials set as GitHub Actions secrets
  3. Cloudflare API tokens for CI deployment (scoped to Pages write)
  4. A wrangler.toml CI environment or GitHub Actions Pages action