Moko Consulting

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

Tennessee
publishing/Workflows

Publishing Workflows

Overview

Packages are published to registries automatically via CI workflows triggered by releases.

Composer (PHP — mokocli)

Registry: Packagist + Gitea Composer

Workflow: composer-publish.yml

  • Triggers on: stable release created on main
  • Publishes to both Packagist and Gitea Composer registry
  • Requires PACKAGIST_TOKEN secret

Setup:

  1. Register package on Packagist.org (one-time, done)
  2. Add PACKAGIST_TOKEN repo secret
  3. Ensure composer.json has NO version field (Packagist reads from tags)

npm (TypeScript — MCP servers)

Registry: npm + Gitea npm

Workflow: npm-publish.yml

  • Triggers on: stable release created on main
  • Publishes to both npm public registry and Gitea npm registry
  • Requires NPM_TOKEN secret

Repos with npm-publish:

  • mcp-mokogitea-api
  • mcp-mokowaas-api
  • mcp-mokocrm-api
  • mcp-mokossh
  • mcp-mokomonitor
  • mcp-mokobackup
  • mcp-mokodreamhost
  • mcp-mokomysql
  • mcp-windows
  • Template-MCP (template for new MCP repos)

Setup for new MCP repos:

  1. Ensure npm-publish.yml exists (synced from Template-MCP)
  2. Add NPM_TOKEN org secret (already org-wide)
  3. Set name and version in package.json

Secrets Reference

Secret Scope Where to Add
NPM_TOKEN Org-wide Org settings → Actions → Secrets
PACKAGIST_TOKEN mokocli only Repo settings → Actions → Secrets
MOKOGITEA_TOKEN Org-wide Used by release workflows for API calls

Gitea Package Registry

All repos automatically publish to the Gitea package registry when tags are created:

  • Composer packages: visible at /packages/MokoConsulting/composer
  • npm packages: visible at /packages/MokoConsulting/npm

No additional workflow needed — Gitea handles this natively.

Revision History

Date Author Changes
2026-06-21 jmiller Initial creation documenting all publish workflows