name: 🌐 Unified Multi-Platform Deployment on: push: branches: [main] workflow_dispatch: inputs: platforms: description: 'Platforms (railway,cloudflare,vercel)' default: 'railway,cloudflare,vercel' jobs: prepare: name: 🔍 Prepare runs-on: ubuntu-latest outputs: railway: ${{ steps.check.outputs.railway }} cloudflare: ${{ steps.check.outputs.cloudflare }} vercel: ${{ steps.check.outputs.vercel }} steps: - name: 🔍 Check platforms id: check run: | PLATFORMS="${{ github.event.inputs.platforms || 'railway,cloudflare,vercel' }}" echo "railway=$([[ $PLATFORMS == *railway* ]] && echo 'true' || echo 'false')" >> $GITHUB_OUTPUT echo "cloudflare=$([[ $PLATFORMS == *cloudflare* ]] && echo 'true' || echo 'false')" >> $GITHUB_OUTPUT echo "vercel=$([[ $PLATFORMS == *vercel* ]] && echo 'true' || echo 'false')" >> $GITHUB_OUTPUT deploy-all: name: 🚀 Deploy all platforms needs: prepare runs-on: ubuntu-latest steps: - name: 📥 Checkout uses: actions/checkout@v4 - name: 🚂 Railway if: needs.prepare.outputs.railway == 'true' run: echo "Deploying to Railway..." - name: ☁️ Cloudflare if: needs.prepare.outputs.cloudflare == 'true' run: echo "Deploying to Cloudflare..." - name: ▲ Vercel if: needs.prepare.outputs.vercel == 'true' run: echo "Deploying to Vercel..." - name: 📊 Summary run: | echo "### 🌐 Multi-Platform Deployment Complete" >> $GITHUB_STEP_SUMMARY echo "| Platform | Status |" >> $GITHUB_STEP_SUMMARY echo "|----------|--------|" >> $GITHUB_STEP_SUMMARY echo "| Railway | ${{ needs.prepare.outputs.railway == 'true' && '✅' || '⏭️' }} |" >> $GITHUB_STEP_SUMMARY echo "| Cloudflare | ${{ needs.prepare.outputs.cloudflare == 'true' && '✅' || '⏭️' }} |" >> $GITHUB_STEP_SUMMARY echo "| Vercel | ${{ needs.prepare.outputs.vercel == 'true' && '✅' || '⏭️' }} |" >> $GITHUB_STEP_SUMMARY