1.9 KiB
1.9 KiB
Delivery Pipeline
Scope
Operational pipeline baseline for image build/push, staging deploy, production promotion, and rollback.
Registry Credentials Strategy
Use scoped Gitea secrets:
CMS_IMAGE_REGISTRYCMS_IMAGE_NAMESPACECMS_IMAGE_REGISTRY_USERCMS_IMAGE_REGISTRY_PASSWORD
Policy:
- credentials only in CI secrets
- no plaintext credentials in repo
- least privilege: push/pull for target namespace only
Build and Push Flow
- Workflow:
.gitea/workflows/release.yml - Trigger:
- tag push
vX.Y.Z - manual
workflow_dispatch
- tag push
- Steps:
- validate tag vs root
package.jsonversion - generate changelog
- extract release notes from
CHANGELOG.md - docker login
- build and push
cms-webandcms-adminimages - publish/update Gitea release notes through API
- validate tag vs root
Additional required secret:
GITEA_RELEASE_TOKEN
Staging Deployment Automation
- Workflow:
.gitea/workflows/deploy.yml - Manual input:
environment=stagingimage_tag=vX.Y.Z
- Remote deployment uses SSH + compose file:
docker-compose.staging.yml
Required secrets:
CMS_STAGING_HOSTCMS_STAGING_USERCMS_DEPLOY_KEYCMS_REMOTE_DEPLOY_PATH
Production Promotion and Rollback
Promotion:
- run deploy workflow with:
environment=productionimage_tag=vX.Y.Z
Rollback:
- release workflow supports manual production rollback by
rollback_image_tag - deploy workflow supports
rollback_taginput for environment-specific rollback - recovery action:
- rerun deploy/rollback with previous known-good tag
Deployment Verification
After deploy:
- app health checks (web/admin)
- auth smoke flow
- i18n smoke flow
- critical route checks (
/,/login,/todo)
Notes
- Current workflows are production-oriented scaffolds and require secret provisioning in Gitea.
- Host hardening, network ACLs, and backup policy remain mandatory operational controls.