Skip to content

feat(be): add release pipeline for backend (BE-30)#492

Open
NnamdiCyber wants to merge 4 commits into
Pulsefy:mainfrom
NnamdiCyber:feat/be-release-pipeline
Open

feat(be): add release pipeline for backend (BE-30)#492
NnamdiCyber wants to merge 4 commits into
Pulsefy:mainfrom
NnamdiCyber:feat/be-release-pipeline

Conversation

@NnamdiCyber
Copy link
Copy Markdown

Summary

Implements the full automated release pipeline for the backend (#416 BE-30).

Changes

  • backend-ci.yml — lint → type-check → build → unit + integration tests on every push/PR
  • backend-release.yml — on push to main: build Docker image → migrate → deploy staging → deploy production (manual approval gate); manual rollback job via workflow_dispatch
  • actions/run-migrations — composite action: runs supabase db push, counts applied migrations, emits sha/env/timestamp annotation
  • actions/deploy-app — composite action: triggers deploy, polls /health up to 4 min, emits release metadata annotation
  • Dockerfile + .dockerignore — multi-stage build for the NestJS backend

Acceptance Criteria

  • ✅ Repeatable, automated releases from main
  • ✅ Migrations applied exactly once per deploy; count + metadata logged as GitHub Actions annotations
  • ✅ Rollbacks re-deploy a previous image by SHA (no reverse migrations — forward-only is the safe default)
  • ✅ Release metadata logged: git sha, image tag, environment, timestamp

Notes

  • The deploy-app action's deploy trigger is a placeholder curl — replace with the actual platform webhook (Render/Railway/Fly.io)
  • Production requires a manual reviewer approval gate (Settings → Environments → production)

Closes #416

- Add backend-ci.yml: lint, type-check, unit + integration tests
- Add backend-release.yml: build Docker image, run migrations, deploy
  staging, deploy production (with manual approval gate), rollback job
- Add composite actions: run-migrations and deploy-app
- Add multi-stage Dockerfile and .dockerignore for backend
- Deprecate old backend.yml stub

Closes Pulsefy#416
@drips-wave
Copy link
Copy Markdown

drips-wave Bot commented May 28, 2026

@NnamdiCyber Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@Cedarich
Copy link
Copy Markdown
Contributor

Fix worflow

@Cedarich
Copy link
Copy Markdown
Contributor

Fix failing workflow

@Cedarich
Copy link
Copy Markdown
Contributor

Fix workflow

@Cedarich
Copy link
Copy Markdown
Contributor

Kindly remove changes made to the backend.yml file

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.

BE-30: Release Pipeline for Backend (Build, Migrate, Deploy)

2 participants