Open-source software for Joomla, Gitea, and web platforms. Home of MokoSuite, MokoGitea, and MokoCLI.
Workflow Standards
Standard Workflows (Template-Synced)
Every repository should have these CI/CD workflows. These are synced from template repos (Template-Generic, Template-Go, Template-MCP, etc.) and identified by a # FILE INFORMATION header block at the top of each file:
| Workflow | Trigger | Purpose |
|---|---|---|
pr-check.yml |
PR to main/dev/rc | Lint, test, security scan (gitleaks) |
pre-release.yml |
Push to dev/rc | Auto-bump patch version, create pre-release |
auto-release.yml |
Push to main | Create stable release, promote changelog |
workflow-sync-trigger.yml |
Dispatch | Sync shared config from template repos |
Additional Synced Workflows
| Workflow | Purpose |
|---|---|
ci-issue-reporter.yml |
Reusable workflow for CI failure issue reporting |
repo-health.yml |
Scheduled repository health checks |
cleanup.yml |
Branch/tag cleanup |
issue-branch.yml |
Auto-create branches from issues |
auto-bump.yml |
Version bumping |
gitleaks.yml |
Secret scanning |
branch-cleanup.yml |
Stale branch cleanup |
Publish Workflows (by repo type)
| Workflow | Repo Type | Purpose |
|---|---|---|
composer-publish.yml |
PHP (MokoCLI) | Publish to Packagist |
npm-publish.yml |
Node (MCP servers) | Publish to npm registry |
Custom Workflows (Repo-Specific)
Repo-specific workflows that are not managed by workflow sync should live in a custom/ subdirectory:
.mokogitea/workflows/
pr-check.yml # synced (✅ FILE INFORMATION header)
pre-release.yml # synced
auto-release.yml # synced
custom/
deploy-mokogitea.yml # repo-specific
deploy-dev.yml # repo-specific
test-mokogitea.yml # repo-specific
Custom workflows have no FILE INFORMATION header and are never touched by workflow sync.
Subdirectory Discovery
Gitea Actions automatically discovers workflows in subdirectories of .mokogitea/workflows/. The underlying ListWorkflows() uses git ls-tree -t -r for recursive file listing, so any .yml or .yaml file at any depth is discovered:
.mokogitea/workflows/pr-check.yml✅.mokogitea/workflows/custom/deploy.yml✅.mokogitea/workflows/custom/deploy/staging.yaml✅
This means moving workflows into subfolders does not affect triggering, dispatch, or UI display.
Workflow Sync System
The MokoCLI command workflow_sync.php pushes template workflows to all managed repos.
- Synced files: Identified by a
# FILE INFORMATIONcomment block at the top - Custom files: Files without this header are ignored by sync
- Subdirectories: Sync only operates on root-level files, so
custom/is never touched - Template sources: Template-Generic (all repos), Template-Go (Go repos), Template-MCP (MCP repos), Template-Joomla (Joomla repos)
Secrets
| Secret | Scope | Purpose |
|---|---|---|
MOKOGITEA_TOKEN |
Org-wide | Gitea API access for CI |
GH_PAT |
Org-wide | GitHub mirror push |
NPM_TOKEN |
MCP repos | npm registry publish |
PACKAGIST_TOKEN |
MokoCLI | Packagist publish |
Commit Message Flags
| Flag | Effect |
|---|---|
[skip ci] |
Skip ALL workflows (use sparingly) |
[skip bump] |
Skip auto-bump AND pre-release |
Revision History
| Date | Author | Changes |
|---|---|---|
| 2026-06-27 | jmiller | Added subdirectory discovery, custom workflow organization, sync system docs |
| 2026-06-21 | jmiller | Initial consolidation; added publish workflows |