mirror of
https://github.com/openclaw/openclaw.git
synced 2026-02-09 05:19:32 +08:00
4.9 KiB
4.9 KiB
Release Pipeline
This document describes openclaw's staged release pipeline for contributors and maintainers.
Branch Strategy
dev/* ──────► develop ──────► alpha ──────► beta ──────► main
feature/* │ │ │ │
fix/* │ │ │ │
▼ ▼ ▼ ▼
Internal Alpha Beta Stable
testing testers testers release
Branch Purposes
| Branch | Purpose | npm tag | Who uses it |
|---|---|---|---|
dev/*, feature/*, fix/* |
Active development | - | Contributors |
develop |
Integration branch | - | CI validation |
alpha |
Early testing | @alpha |
Internal testers |
beta |
Pre-release testing | @beta |
Beta testers |
main |
Production releases | @latest |
Everyone |
Workflow Overview
1. Feature Development
- Create a branch:
git checkout -b dev/my-feature - Make changes and push
- Auto-PR created to
developviafeature-pr.yml - Get review, iterate, merge to
develop
2. Promotion Through Stages
When code lands in develop, the promote-branch.yml workflow:
- Runs tests appropriate for that stage
- Creates a PR to the next branch (develop → alpha → beta → main)
- Auto-merges
develop → alphaif tests pass - Requires manual approval for
alpha → betaandbeta → main
3. Releases
Releases are triggered manually via the Release workflow:
- Go to Actions → Release → Run workflow
- Select release type:
alpha,beta, orstable - Workflow runs: version bump → changelog → tests → npm publish → Docker push
Test Coverage by Stage
| Stage | Tests Run |
|---|---|
| develop | tsgo, lint, format, protocol, unit tests (Node + Bun) |
| alpha | + secrets scan |
| beta | + Windows tests |
| stable | + macOS tests, install smoke tests |
Emergency Hotfixes
For critical production issues:
- Create branch:
git checkout -b hotfix/critical-bug - Push → Auto-PR created directly to
main - Get expedited review (skip staging)
- After merge, cherry-pick to
develop,alpha,betato sync
# After hotfix merges to main
git checkout develop && git cherry-pick <commit-sha> && git push
git checkout alpha && git cherry-pick <commit-sha> && git push
git checkout beta && git cherry-pick <commit-sha> && git push
npm Installation by Channel
# Stable (default)
npm install -g openclaw
# Beta testing
npm install -g openclaw@beta
# Alpha testing (bleeding edge)
npm install -g openclaw@alpha
Docker Images
Images are published to GitHub Container Registry:
# Stable
docker pull ghcr.io/openclaw/openclaw:latest
# Beta
docker pull ghcr.io/openclaw/openclaw:beta
# Specific version
docker pull ghcr.io/openclaw/openclaw:2026.2.6
Version Format
- Stable:
YYYY.M.D(e.g.,2026.2.6) - Beta:
YYYY.M.D-beta.N(e.g.,2026.2.6-beta.1) - Alpha:
YYYY.M.D-alpha.N(e.g.,2026.2.6-alpha.3)
Setup
Required Secrets
Configure these in GitHub repo Settings → Secrets and variables → Actions:
| Secret | Required? | Purpose | How to get it |
|---|---|---|---|
GITHUB_TOKEN |
Automatic | PR creation, Docker registry, branch ops | Provided by GitHub Actions — no setup needed |
NPM_TOKEN |
Yes (for publishing) | npm publish with @alpha, @beta, @latest tags |
npmjs.com → Access Tokens → Generate New Token → Automation |
DISCORD_WEBHOOK_URL |
Optional | Notifications for promotions, test results, deployments | Discord → Server Settings → Integrations → Webhooks |
Without NPM_TOKEN, the pipeline runs normally but skips npm publishing. Without DISCORD_WEBHOOK_URL, notifications are silently skipped.
Branch Setup
Staging branches are auto-created from main when the first promotion runs. No manual setup required.
Rollback
The rollback workflow (Actions → Rollback) re-tags npm and Docker to a previous version. Requires NPM_TOKEN and is manual-trigger only.