Page:
workflows-auto-release
Pages
ARCHITECTURE
AUTO_CREATE_ORG_PROJECTS
CLI_AUTOMATION
DEPLOY_SCRIPTS
DOLIBARR_MODULE_IDS
DRY_RUN_PATTERN
Documentation-Standards.-.-
Documentation-Standards.-
File-Header-Standards
Home
JOOMLA_SYNC
LEGAL_DOC_GENERATOR_WEB_README
MCP-Servers.-.-.
MCP-Servers
MINIFICATION
MONITORING_SCRIPTS
NEW_SCRIPTS
QUICKSTART_ORG_PROJECTS
SITE_MONITORING
WIKI_STANDARDS
WORKFLOW_STANDARDS
api-automation-index.-
api-automation-index
api-definitions-default-index.-
api-definitions-default-index
api-definitions-sync-index.-
api-definitions-sync-index
api-deploy-index.-
api-deploy-index
api-fix-index.-
api-fix-index
api-index.-
api-index
api-maintenance-index.-
api-maintenance-index
api-plugin-index.-
api-plugin-index
api-tests-index.-
api-tests-index
api-tests-sample-index.-
api-tests-sample-index
api-validate-index.-
api-validate-index
automation-README.-
automation-README
automation-branch-version-automation.-
automation-branch-version-automation
automation-push-files.-
automation-push-files
automation-repo-cleanup.-
automation-repo-cleanup
client-repos.-.-
client-repos
standards-mokostandards-file-spec.-
standards-mokostandards-file-spec
templates-client-waas
templates-dolibarr
templates-generic
templates-mcp
workflows-README.-
workflows-README
workflows-auto-release.-
workflows-auto-release
workflows-branch-protection.-
workflows-branch-protection
workflows-build-release.-
workflows-build-release
workflows-cascade-dev.-
workflows-cascade-dev
workflows-changelog-management.-
workflows-changelog-management
workflows-demo-deployment.-
workflows-demo-deployment
workflows-dev-branch-tracking.-
workflows-dev-branch-tracking
workflows-dev-deployment.-
workflows-dev-deployment
workflows-index.-
workflows-index
workflows-release-system.-
workflows-release-system
workflows-renovate.-
workflows-renovate
workflows-reusable-workflows.-
workflows-reusable-workflows
workflows-rs-deployment.-
workflows-rs-deployment
workflows-secret-scanning.-
workflows-secret-scanning
workflows-shared-workflows.-
workflows-shared-workflows
workflows-standards-compliance.-
workflows-standards-compliance
workflows-static-analysis.-
workflows-static-analysis
workflows-sub-issue-management.-
workflows-sub-issue-management
workflows-update-server.-
workflows-update-server
workflows-workflow-architecture.-
workflows-workflow-architecture
Clone
3
workflows-auto-release
Jonathan Miller edited this page 2026-05-20 01:26:24 +00:00
Table of Contents
- Auto Release
- Platform-Specific Pipelines
- Triggers
- Version Lifecycle
- Release Tags
- Stream Tags (v2)Releases use stream-based git tags, NOT version numbers:- stable — production release- release-candidate — RC testing- beta — feature-complete stability testing- alpha — early testing- development — unstable dev buildsTo trigger a release, push the appropriate stream tag: git tag -f stable && git push origin stable --force### Cascade LogicEach stability level cascades to all lower levels in updates.xml:- stable → updates development, alpha, beta, rc, stable- rc → updates development, alpha, beta, rc- beta → updates development, alpha, beta- alpha → updates development, alpha- development → updates development only### SHA-256 Rules- Never leave <sha256></sha256> empty — Joomla fails checksum verification on empty tags- Omit the <sha256> tag entirely if no hash is available- Always set SHA when building a package### creationDateAlways update <creationDate> whenever version is bumped — in the manifest AND in updates.xml.### Auto-DetectionThe release workflow (release.yml) is fully generic:- GITEA_REPO derived from github.event.repository.name- EXT_ELEMENT auto-detected from the Joomla manifest <element> tag- Falls back to manifest filename, then repo name (lowercased)- No per-repo customization needed### Version History (Stable Releases)Stable releases keep up to 5 previous versions in the Gitea release body.
- Requirements
- Changelog Extraction
- Draft Release (RC Branches)
- When an rc/** branch is created, the branch tracking system auto-creates a draft GitHub Release for the vXX major version. This draft is later published by auto-release.yml when the RC merges to main. See Dev Branch Tracking for details.
← Home
Auto Release
Creates or updates a GitHub Release on every push to main. Uses major-only tags (vXX) — one release per major version, with all minor+patch versions appending notes and assets to the same release.
Platform-Specific Pipelines
Generic Repos
- Reads
VERSION:from README.md FILE INFORMATION block (e.g.,04.06.00) - Extracts major version (e.g.,
04) - Creates or updates the
v04tag on the release commit - Creates or updates the
v04GitHub Release, appending changelog notes for this version - Auto-bumps patch version with
[skip ci]commit - Auto-creates
version/XXarchive branch
Joomla Repos (waas-component)
Joomla repos do not use FTP deploy. Distribution is via GitHub Release ZIPs.
- Reads
VERSION:from README.md FILE INFORMATION block - Builds installable ZIP from
src/directory - Computes SHA-256 hash of the ZIP
- Uploads ZIP as an asset to the
vXXGitHub Release (e.g.,com_myextension-01.02.03.zip) - Updates
updates.xmlwith the stable entry: version, download URL, and SHA-256 hash - Creates or updates the
vXXtag and release, appending changelog notes - Auto-bumps patch version with
[skip ci]commit - Auto-creates
version/XXarchive branch
Dolibarr Repos (crm-module, crm-platform)
- Reads
VERSION:from README.md FILE INFORMATION block - Updates
$this->versioninmod*.class.phpto the real version - Updates
update.txtwith the stable version string - Creates or updates the
vXXtag and release, appending changelog notes - Auto-bumps patch version with
[skip ci]commit - Auto-creates
version/XXarchive branch
Triggers
- Push to
mainormaster - Skips commits by
gitea-actions[bot]and commits with[skip ci]
Version Lifecycle
| Phase | Branch | Module Version | Release? |
|---|---|---|---|
| Development | dev/** |
XX.YY.00 (patch 00 = dev) |
No |
| Alpha (optional) | alpha/** |
XX.YY.ZZ |
alpha tag release |
| Beta (optional) | beta/** |
XX.YY.ZZ |
beta tag release |
| Release Candidate | rc/** |
XX.YY.ZZ (patch >= 01) |
release-candidate tag (draft release created on RC branch creation) |
| Merge to main | main |
Real version (e.g., 01.02.01) |
Yes — vXX tag + release |
| Auto-bump | main |
Auto-incremented patch | No (skipped by [skip ci]) |
Note: Alpha and beta stages are optional. Dev can go directly to rc when not needed.
Release Tags
Each stability level has its own GitHub Release tag:
| Tag | Stability | Source |
|---|---|---|
development |
Development | dev/** branches |
alpha |
Alpha | alpha/** branches |
beta |
Beta | beta/** branches |
release-candidate |
RC | rc/** branches |
vXX |
Stable production | main (major only, e.g., v04) |
- The
vXXproduction tag is major only — one GitHub Release per major version - All minor+patch versions append release notes and ZIP assets to the same
vXXrelease - No minor or patch production tags are created
- Pre-release tags are updated in-place per stability level
Stream Tags (v2)Releases use stream-based git tags, NOT version numbers:- stable — production release- release-candidate — RC testing- beta — feature-complete stability testing- alpha — early testing- development — unstable dev buildsTo trigger a release, push the appropriate stream tag: git tag -f stable && git push origin stable --force### Cascade LogicEach stability level cascades to all lower levels in updates.xml:- stable → updates development, alpha, beta, rc, stable- rc → updates development, alpha, beta, rc- beta → updates development, alpha, beta- alpha → updates development, alpha- development → updates development only### SHA-256 Rules- Never leave <sha256></sha256> empty — Joomla fails checksum verification on empty tags- Omit the <sha256> tag entirely if no hash is available- Always set SHA when building a package### creationDateAlways update <creationDate> whenever version is bumped — in the manifest AND in updates.xml.### Auto-DetectionThe release workflow (release.yml) is fully generic:- GITEA_REPO derived from github.event.repository.name- EXT_ELEMENT auto-detected from the Joomla manifest <element> tag- Falls back to manifest filename, then repo name (lowercased)- No per-repo customization needed### Version History (Stable Releases)Stable releases keep up to 5 previous versions in the Gitea release body.
Requirements
secrets.GH_TOKENwithcontents: writepermissionVERSION:field in README.md FILE INFORMATION block.mokostandardsfile withplatform:field (joomla,dolibarr, orgeneric)
Changelog Extraction
The workflow extracts release notes from CHANGELOG.md by finding the section header that matches the version number. If no match is found, it uses "Release {VERSION}" as the fallback.
Draft Release (RC Branches)
When an rc/** branch is created, the branch tracking system auto-creates a draft GitHub Release for the vXX major version. This draft is later published by auto-release.yml when the RC merges to main. See Dev Branch Tracking for details.
Repo: moko-platform · moko-platform wiki
| Field | Value |
|---|---|
| Minimum Version | 04.07.00 |
| Platform | all |
| Applies To | All repositories |
| Revision | Date | Author | Description |
|---|---|---|---|
| 1.0 | 2026-05-08 | Moko Consulting | Initial version |