Skip to content

How to Deploy

All deployments go through GitHub Actions. There are two ways to trigger a deployment.

Option 1 — Push to the Environment Branch

Merge or push your changes to the branch that corresponds to the environment you want to deploy to.

BranchDeploys To
stagingstaging-app.semalink.africa
testtest-app.semalink.africa
prodapp.semalink.africa
sh
# Example: deploy to staging
git checkout staging
git merge main
git push origin staging

Option 2 — Manual Trigger

You can deploy any branch at any time without pushing:

  1. Go to GitHub → Actions
  2. Select the workflow — Deploy — Staging, Deploy — Test, or Deploy — Production
  3. Click Run workflow
  4. Select the branch and click Run workflow

What Happens During a Deploy

  1. GitHub checks out the code
  2. Installs dependencies with npm ci
  3. Builds the app with npm run build — secrets are injected here
  4. Uploads dist/ to Cloudflare Pages
  5. Sends a Slack notification (success or failure)

A full deploy takes approximately 35–50 seconds.

Checking Deploy Status

  • Watch the run live at GitHub Actions
  • A Slack message will arrive in the team channel when complete

Rollback

To roll back to a previous deployment:

  1. Go to Cloudflare Dashboard → Pages → select the project
  2. Click Deployments
  3. Find the last good deployment and click Rollback to this deployment

This is instant — no rebuild needed.

Internal use only — Sema Link Engineering