Moko Consulting

Open-source software for Joomla, Gitea, and web platforms. Home of MokoSuite, MokoGitea, and MokoCLI.

Tennessee
unnamed

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 INFORMATION comment 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