CI/CD Pipeline Guide
Continuous integration and deployment pipeline configuration.
Overviewβ
Gauzy uses GitHub Actions for CI/CD with the following stages:
CI Pipeline (Pull Requests)β
Triggered on every PR:
name: CI
on:
pull_request:
branches: [develop, main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v6
with:
node-version: 20
- run: yarn install --frozen-lockfile
- run: yarn lint
- run: yarn test
- run: yarn build
CD Pipeline (Main Branch)β
Triggered on merge to main:
- Build Docker images
- Push to GHCR (
ghcr.io/ever-co/gauzy-*) - Deploy to staging/production
Docker Build Pipelineβ
- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ghcr.io/ever-co/gauzy-api:latest
build-args: |
VERDACCIO_TOKEN=${{ secrets.VERDACCIO_TOKEN }}
Deployment Environmentsβ
| Environment | Trigger | Target |
|---|---|---|
| Dev | Push to develop | dev.example.com |
| Staging | Push to main | staging.example.com |
| Production | Manual release | app.example.com |
Required Secretsβ
| Secret | Description |
|---|---|
GITHUB_TOKEN | Auto-provided by GH |
VERDACCIO_TOKEN | Private registry token |
DOCKER_HUB_USERNAME | Container registry auth |
SENTRY_DSN | Error tracking |
DEPLOY_KEY | SSH deploy key |
Related Pagesβ
- Production Deployment β deploy guide
- Private Registry β Verdaccio
- Release Process β release workflow