upskill-event-manager/docs/cloudways_deployment_plan.md
2025-04-07 07:19:22 -03:00

3.9 KiB

Cloudways Deployment Plan (Revised: Strategy B - Temp Path + Hooks)

This document outlines the plan to transition the project development workflow to a Cloudways staging server and configure automated deployment via Git. This plan uses the Revised Strategy B, where the deployment branch (cloudways-dev) contains the plugin code plus essential development folders, and Cloudways uses a temporary deployment path with post-deployment hooks.

Phase 1: Project Cleanup & Restructure (on cloudways-dev branch) - Completed

  • Goal: Prepare the cloudways-dev branch for deployment while retaining essential development folders.
  • Actions Performed:
    1. The branch was initially cleaned to contain only the hvac-community-events plugin folder.
    2. Essential development folders (.roo/, docs/, memory-bank/, .roomodes) were restored from commit b1522bad.
    3. A .gitignore file was added to ignore everything except hvac-community-events/ and .gitignore itself (Note: This only affects untracked files; the restored folders are tracked and will be deployed).
    4. The resulting state (plugin + essential folders + .gitignore) was force-pushed to the remote cloudways-dev branch.

Phase 2: Cloudways Git Deployment Configuration (User Action - Strategy B)

  • Goal: Configure Cloudways to automatically deploy only the plugin from the cloudways-dev branch into the correct server path.
  • Prerequisites: Cloudways SSH key generated and added as a Deploy Key in the GitHub repository settings (bengizmo/upskill-event-manager).
  • Actions (to be performed by the user in the Cloudways UI):
    1. Navigate to the target Application Settings -> Deployment Via Git.
    2. Set the Git Remote Address (SSH URL): git@github.com:bengizmo/upskill-event-manager.git
    3. Select the Branch: cloudways-dev
    4. Set the Deployment Path to a temporary location: e.g., /home/master/git_deploys/upskill-event-manager
    5. Add Post-Deployment Commands to copy only the plugin to the correct location:
      # Remove the old plugin directory (use -f to avoid errors if it doesn't exist)
      echo "Removing existing plugin directory..."
      rm -rf /home/master/applications/uberrxmprk/public_html/wp-content/plugins/hvac-community-events
      
      # Copy the newly deployed plugin directory from the temporary location
      echo "Copying new plugin directory..."
      cp -R /home/master/git_deploys/upskill-event-manager/hvac-community-events /home/master/applications/uberrxmprk/public_html/wp-content/plugins/
      
      # Optional: Clear cache if WP-CLI is installed
      # echo "Flushing WP cache..."
      # wp cache flush --path=/home/master/applications/uberrxmprk/public_html || true 
      
      echo "Plugin deployment script finished."
      
    6. Click "Start Deployment" to perform the initial deployment.
    7. Verify that only the hvac-community-events directory appears correctly in /home/master/applications/uberrxmprk/public_html/wp-content/plugins/ on the server via SSH/SFTP or the WordPress admin panel. Check that docs/, memory-bank/ etc. are not copied into the plugins directory.

Phase 3: Workflow Considerations

  • Branching: The cloudways-dev branch contains the plugin and essential development files.
  • Development: Make code changes on this branch or your primary development branch. If using a separate primary branch, ensure changes are merged/cherry-picked to cloudways-dev before deployment.
  • Deployment Trigger: Push the updated cloudways-dev branch to trigger the Cloudways deployment (if auto-deploy is enabled) or manually trigger deployment in the Cloudways UI.

Phase 4: Memory Bank Update (Roo Action)

  • The Memory Bank files (decisionLog.md, activeContext.md, progress.md) on the main development branch will be updated to reflect this final strategy.