From 05ee739f57d687993dcccdd85e757c97e2380df5 Mon Sep 17 00:00:00 2001 From: peptiderepo <273788462+peptiderepo@users.noreply.github.com> Date: Tue, 9 Jun 2026 19:15:42 +0700 Subject: [PATCH] ci: adopt shared reusable deploy workflow (deploy-app.yml) Replaces the per-repo staging/smoke/production jobs with one call to peptiderepo/peptide-e2e/.github/workflows/deploy-app.yml (target_path=wp-content/plugins/prautoblogger). Validated end-to-end on the calculator pilot. Agent-Session: cto rollout-reusable-deploy --- .github/workflows/deploy.yml | 93 +++--------------------------------- 1 file changed, 6 insertions(+), 87 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 0407d84..5b5f472 100755 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -28,91 +28,10 @@ jobs: -not -path './.github/*' \ -print0 | xargs -0 -n1 -P4 php -l > /dev/null - deploy-staging: - name: Deploy to Staging + deploy: + name: Deploy (shared pipeline) needs: validate - runs-on: ubuntu-latest - environment: staging - steps: - - uses: actions/checkout@v4 - - name: Setup SSH key - run: | - mkdir -p ~/.ssh - echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/deploy_key - chmod 600 ~/.ssh/deploy_key - ssh-keyscan -p ${{ secrets.SSH_PORT }} ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts 2>/dev/null - - name: Deploy via rsync → staging - run: | - rsync -avz --delete \ - --exclude '.git' --exclude '.github' \ - --exclude 'tests' --exclude 'phpunit.xml.dist' \ - --exclude 'composer.json' --exclude 'composer.lock' \ - --exclude 'vendor' --exclude '.distignore' \ - --exclude 'ARCHITECTURE.md' --exclude 'CONVENTIONS.md' \ - -e "ssh -i ~/.ssh/deploy_key -p ${{ secrets.SSH_PORT }}" \ - ./ ${{ secrets.SSH_USERNAME }}@${{ secrets.SSH_HOST }}:~/domains/peptiderepo.com/public_html/staging/wp-content/plugins/prautoblogger/ - - name: Staging health check - run: | - sleep 5 - STATUS=$(curl -s -o /dev/null -w "%{http_code}" https://staging.peptiderepo.com/ || echo "000") - echo "Staging responded: HTTP $STATUS" - [ "$STATUS" = "000" ] && echo "Warning: staging DNS may still be propagating" || true - - name: Cleanup - if: always() - run: rm -f ~/.ssh/deploy_key - - smoke: - name: Smoke tests (staging) - needs: deploy-staging - uses: peptiderepo/peptide-e2e/.github/workflows/smoke.yml@main - secrets: - STAGING_WP_ADMIN_USER: ${{ secrets.STAGING_WP_ADMIN_USER }} - STAGING_WP_ADMIN_PASSWORD: ${{ secrets.STAGING_WP_ADMIN_PASSWORD }} - - deploy-production: - name: Deploy to Production - needs: [validate, deploy-staging] - runs-on: ubuntu-latest - environment: production - steps: - - uses: actions/checkout@v4 - - name: Setup SSH key - run: | - mkdir -p ~/.ssh - echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/deploy_key - chmod 600 ~/.ssh/deploy_key - ssh-keyscan -p ${{ secrets.SSH_PORT }} ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts 2>/dev/null - - name: Deploy via rsync → production - run: | - rsync -avz --delete \ - --exclude '.git' --exclude '.github' \ - --exclude 'tests' --exclude 'phpunit.xml.dist' \ - --exclude 'composer.json' --exclude 'composer.lock' \ - --exclude 'vendor' --exclude '.distignore' \ - --exclude 'ARCHITECTURE.md' --exclude 'CONVENTIONS.md' \ - -e "ssh -i ~/.ssh/deploy_key -p ${{ secrets.SSH_PORT }}" \ - ./ ${{ secrets.SSH_USERNAME }}@${{ secrets.SSH_HOST }}:~/domains/peptiderepo.com/public_html/wp-content/plugins/prautoblogger/ - - name: Purge LiteSpeed Cache - run: | - ssh -i ~/.ssh/deploy_key -p ${{ secrets.SSH_PORT }} \ - ${{ secrets.SSH_USERNAME }}@${{ secrets.SSH_HOST }} \ - "cd ~/domains/peptiderepo.com/public_html && \ - wp litespeed-purge all 2>/dev/null || \ - (find wp-content/litespeed/ -type f -delete 2>/dev/null; touch .lscache_purge 2>/dev/null) || true" - - name: Production health check - run: | - sleep 5 - STATUS=$(curl -s -o /dev/null -w "%{http_code}" https://peptiderepo.com) - if [ "$STATUS" != "200" ] && [ "$STATUS" != "403" ]; then - echo "ERROR: Site returned unexpected HTTP $STATUS after deploy" - exit 1 - fi - echo "Production healthy (HTTP $STATUS)" - - name: Cleanup - if: always() - run: rm -f ~/.ssh/deploy_key - - name: Deploy summary - run: | - echo "## Deployment Complete" >> $GITHUB_STEP_SUMMARY - echo "- **Commit:** \`${GITHUB_SHA::7}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Deployed to:** peptiderepo.com" >> $GITHUB_STEP_SUMMARY + uses: peptiderepo/peptide-e2e/.github/workflows/deploy-app.yml@main + with: + target_path: wp-content/plugins/prautoblogger + secrets: inherit