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.
| Branch | Deploys To |
|---|---|
staging | staging-app.semalink.africa |
test | test-app.semalink.africa |
prod | app.semalink.africa |
sh
# Example: deploy to staging
git checkout staging
git merge main
git push origin stagingOption 2 — Manual Trigger
You can deploy any branch at any time without pushing:
- Go to GitHub → Actions
- Select the workflow — Deploy — Staging, Deploy — Test, or Deploy — Production
- Click Run workflow
- Select the branch and click Run workflow
What Happens During a Deploy
- GitHub checks out the code
- Installs dependencies with
npm ci - Builds the app with
npm run build— secrets are injected here - Uploads
dist/to Cloudflare Pages - 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:
- Go to Cloudflare Dashboard → Pages → select the project
- Click Deployments
- Find the last good deployment and click Rollback to this deployment
This is instant — no rebuild needed.