Files
k8s-game-2048/.github/workflows/auto-promote.yml
Greg a509e4603e Remove custom domain testing from workflows
- Remove all custom domain SSL testing and health checks
- Use only canonical Knative domains for all testing
- Update all workflows to use domain secrets for health checks
- Remove kubectl dependencies from deployment workflows
- Update index.html to v2.0.2 for testing canonical domain workflow
- Simplify smoke tests to focus on Knative canonical domains only
- Clean up auto-promotion summaries to remove SSL references

All workflows now test only the canonical Knative domains and avoid
custom domain complexity for a cleaner, more reliable pipeline.
2025-07-01 12:42:05 -07:00

126 lines
4.8 KiB
YAML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: Auto-Promote Pipeline
on:
workflow_run:
workflows: ["Deploy to Development"]
types:
- completed
branches: [ develop ]
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 dev deployment to settle
run: |
echo "⏳ Waiting for dev deployment to fully settle..."
sleep 60
- name: Run comprehensive dev tests
run: |
echo "🧪 Running comprehensive tests on dev environment..."
# Use the canonical Knative domain
CANONICAL_URL="https://game-2048-dev.game-2048-dev.${{ secrets.DEV_DOMAIN }}"
echo "Testing canonical domain: $CANONICAL_URL"
canonical_response=$(curl -s -o /dev/null -w "%{http_code}" -L --max-time 30 "$CANONICAL_URL")
if [ "$canonical_response" != "200" ]; then
echo "❌ Canonical domain returned HTTP $canonical_response"
exit 1
fi
echo "✅ Canonical domain accessible"
# Test content validation on canonical domain
echo "Testing content validation on canonical domain..."
content=$(curl -s -L --max-time 30 "$CANONICAL_URL")
if ! echo "$content" | grep -q "2048"; then
echo "❌ Content missing 2048 title"
exit 1
fi
if ! echo "$content" | grep -q "HOW TO PLAY"; then
echo "❌ Content missing game instructions"
exit 1
fi
if ! echo "$content" | grep -q "style.css"; then
echo "❌ CSS file not referenced"
exit 1
fi
if ! echo "$content" | grep -q "script.js"; then
echo "❌ JavaScript file not referenced"
exit 1
fi
echo "✅ All content validation tests passed"
# Test performance on canonical domain
echo "Testing performance on canonical domain..."
response_time=$(curl -s -o /dev/null -w "%{time_total}" -L --max-time 30 "$CANONICAL_URL")
if (( $(echo "$response_time > 10.0" | bc -l) )); then
echo "❌ Response time too slow: ${response_time}s"
exit 1
fi
echo "✅ Performance test passed: ${response_time}s"
- name: Auto-promote develop to staging branch
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
console.log('🚀 All dev 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 requires manual approval via staging → main merge" >> $GITHUB_STEP_SUMMARY