Production deployment
Rondo Club deploys automatically when a commit reaches the main branch and
the required continuous-integration checks pass. Production releases do not
depend on a developer workstation.
Pipeline
Section titled “Pipeline”The CI and deploy workflow performs these stages:
- Install locked JavaScript and PHP dependencies.
- Run JavaScript linting, a production frontend build, and PHP coding standards.
- Rebuild the exact
maincommit as a production release:npm cinpm run buildcomposer install --no-dev --prefer-dist --optimize-autoloader
- Store the compressed release as a GitHub Actions artifact for 30 days.
- Deploy the artifact to SiteGround over SSH.
- Remove deleted files from release-controlled directories.
- Clear the WordPress object cache and SiteGround cache.
- Confirm that the live WordPress theme version matches the release and that the production URL responds successfully.
Pull requests and feature branches run validation only. They cannot access the production environment or its SSH key.
Production environment
Section titled “Production environment”GitHub’s production environment holds one secret:
DEPLOY_SSH_PRIVATE_KEY— a dedicated, revocable SiteGround SSH key used only by GitHub Actions.
The environment also holds the non-secret deployment variables:
DEPLOY_SSH_HOSTDEPLOY_SSH_PORTDEPLOY_SSH_USERDEPLOY_REMOTE_WP_PATHDEPLOY_REMOTE_THEME_PATHDEPLOY_PRODUCTION_URLDEPLOY_SSH_KNOWN_HOSTS
Only the deployment job references the environment. Build and pull-request jobs never receive deployment credentials.
Rollback
Section titled “Rollback”Run the Roll back production workflow and supply a full 40-character commit
SHA. The workflow refuses commits that are not contained in main, rebuilds
the selected revision from its lockfiles, and follows the normal production
deployment and verification path.
Emergency local deployment
Section titled “Emergency local deployment”bin/deploy.sh remains available as a break-glass fallback. Export the
deployment variables or configure the local .env, install dependencies, and
run:
bin/deploy.sh --pruneNormal releases should always use GitHub Actions so the deployed artifact, commit, logs, and verification result are recorded centrally.