name: Auto-Promote Pipeline on: workflow_run: workflows: ["Smoke Tests"] types: - completed branches: [ develop ] permissions: actions: write contents: write jobs: test-and-promote-to-staging: name: Test Dev and Auto-Promote to Staging runs-on: ubuntu-latest environment: development if: ${{ github.event.workflow_run.conclusion == 'success' }} steps: - name: Checkout repository uses: actions/checkout@v4 with: ref: develop - name: Wait for smoke test results to settle run: | echo "âŗ Smoke tests completed, proceeding with promotion..." sleep 30 - name: Verify dev smoke tests passed run: | echo "✅ Development smoke tests passed - proceeding with auto-promotion to staging" - name: Auto-promote develop to staging branch uses: actions/github-script@v7 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | console.log('🚀 All dev smoke tests passed! Auto-promoting develop to staging branch...'); // Create a merge from develop to staging try { const response = await github.rest.repos.merge({ owner: context.repo.owner, repo: context.repo.repo, base: 'staging', head: 'develop', commit_message: 'Auto-promote: Merge develop to staging after successful dev tests' }); console.log('✅ Successfully merged develop to staging branch'); console.log('This will trigger staging deployment automatically'); return response; } catch (error) { if (error.status === 409) { console.log('â„šī¸ No new commits to merge - staging is already up to date'); } else { throw error; } } - name: Create promotion summary run: | echo "## đŸŽ¯ Auto-Promotion Summary (Develop → Staging)" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "| Stage | Status | Action |" >> $GITHUB_STEP_SUMMARY echo "|-------|--------|--------|" >> $GITHUB_STEP_SUMMARY echo "| Dev Tests | ✅ Passed | Comprehensive validation completed |" >> $GITHUB_STEP_SUMMARY echo "| Staging Branch | 🚀 Updated | Auto-promotion completed |" >> $GITHUB_STEP_SUMMARY echo "| Staging Deploy | âŗ Triggered | Deployment will start automatically |" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "### 📋 Tests Performed" >> $GITHUB_STEP_SUMMARY echo "- Canonical domain accessibility check" >> $GITHUB_STEP_SUMMARY echo "- Content and functionality validation" >> $GITHUB_STEP_SUMMARY echo "- Performance testing" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "### 🔗 Next Steps" >> $GITHUB_STEP_SUMMARY echo "- Staging deployment will start automatically" >> $GITHUB_STEP_SUMMARY echo "- Staging tests will run automatically" >> $GITHUB_STEP_SUMMARY echo "- Production promotion will happen automatically after staging tests pass" >> $GITHUB_STEP_SUMMARY echo "- Production deployment will happen automatically after promotion" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "🚀 **Fully Automatic Pipeline** - No manual intervention required!" >> $GITHUB_STEP_SUMMARY