Open-source software for Joomla, Gitea, and web platforms. Home of MokoSuite, MokoGitea, and MokoCLI.
Tennessee
releases/ci-cd-overview.-
CI/CD Overview
Gitea Actions workflows and automation for MokoConsulting projects.
Workflow Engine
All CI/CD runs on Gitea Actions (GitHub Actions compatible) with runners hosted on the git server.
Shared Workflows
auto-release.yml
Triggers on version tag push. Builds and publishes Joomla extensions:
on:
push:
tags: ['v*']
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate
run: make validate
- name: Build
run: make build
- name: Create Release
uses: actions/create-release@v1
with:
files: dist/*.zip
ci-joomla.yml
Runs on PRs targeting main. Validates PHP code:
- PHP lint (
php -l) - PHP CodeSniffer (Joomla standard)
- PHPStan (level 6+)
- PHPUnit tests
client-release.yml
Builds client theme packages. Triggers on tags in client repos:
- Packages theme into ZIP
- Creates Gitea release
- Generates SHA-256 checksum
- Updates the update server XML
ci-client.yml
Validates client theme packages on PRs:
- PHP lint on template overrides
- CSS validation
- Manifest validation
mokoplatform CLI Validators
PHP CLI tools in mokoplatform/validate/ that run during CI:
| Validator | Purpose |
|---|---|
check_manifest.php |
Validates .mokogitea/manifest.xml structure |
check_changelog.php |
Validates CHANGELOG.md format (Keep a Changelog) |
check_language.php |
Validates Joomla .ini language files (syntax, missing keys) |
Run locally via make validate — same checks as CI.
Runner Infrastructure
- 4 Gitea Actions runners on the git server
- Each runner: Docker container with 8GB memory limit
- Runner labels:
ubuntu-latest - Registration managed via Gitea admin panel
Secrets
| Secret | Scope | Purpose |
|---|---|---|
GITEA_TOKEN |
Organization | API access for releases |
GITHUB_TOKEN |
Organization | GitHub mirror operations |
| Client deploy keys | Per-repo | Push access to client repos |
Pages