Files
moko-platform/docs/workflows/demo-deployment.md
T
Jonathan Miller 551307efed Complete Gitea-primary migration: templates, docs, bot identity
- All remaining github-actions[bot] → gitea-actions[bot]
- All remaining gh api calls in non-mirror steps → Gitea API curl
- COMPOSER_AUTH uses GA_TOKEN for Gitea composer registry
- 7 docs updated with correct bot identity and token refs
- gh release create/edit only remains in GitHub mirror sections

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 23:00:59 -05:00

2.8 KiB

MokoStandards

Demo Server Deployment

Automated SFTP deployment of the src/ directory to the demo server on merge to main.

Overview

The deploy-demo.yml workflow pushes the contents of src/ to a demo server over SFTP when:

  • A commit is pushed to main or master
  • A pull request targeting main/master is merged
  • Triggered manually via workflow dispatch

Unlike deploy-dev.yml, the demo workflow deploys the real version (no "development" override).

Required Variables

Variable Scope Description
DEMO_FTP_HOST org Demo server hostname (may include :port suffix)
DEMO_FTP_PATH org Base remote path (e.g., /var/www/demo)
DEMO_FTP_USERNAME org SFTP username
DEMO_FTP_SUFFIX repo Repo-specific subdirectory appended to DEMO_FTP_PATH
DEMO_FTP_PORT org (optional) Explicit port override (auto-detected from host or defaults to 22)

Required Secrets

Secret Scope Description
DEMO_FTP_KEY org SSH private key (preferred)
DEMO_FTP_PASSWORD org SFTP password or key passphrase

At least one of DEMO_FTP_KEY or DEMO_FTP_PASSWORD must be set.

Behaviour

  1. Permission checkjmiller-moko and gitea-actions[bot] are always authorized; other actors need admin or maintain role
  2. Skip on chore/ branches — PRs from chore/ branches do not trigger deployment
  3. Skip if DEMO_FTP_SUFFIX not set — repos without the variable are silently skipped
  4. Clear remote folder — always clears the remote destination before uploading
  5. Upload — deploys via deploy-sftp.php using phpseclib3
  6. Failure issue — creates/updates a deploy-failure issue on error

Differences from Dev Deployment

Feature Dev Demo
Triggers dev/**, develop, development main, master
Version Set to "development" Real version from README.md
Variables DEV_FTP_* DEMO_FTP_*

See Also

Note: deploy-rs.yml has been retired. RS deployment is handled via the release pipeline only.