
GitHub Actions Workflows: - test.yml: PR validation with Docker build and health checks - deploy.yml: Automated build and deployment on master push - Multi-platform builds (amd64, arm64) with registry caching - SSH-based deployment with zero-downtime updates Production Infrastructure: - docker-compose.prod.yml: Production deployment configuration - deploy.sh: Automated deployment script with health checks - .env.production: Production environment template - README-DEPLOYMENT.md: Complete deployment documentation Features: - Automated testing on pull requests - Container registry publishing to GHCR - Health check validation - Image cleanup and optimization - Proper security with read-only containers Ready for automated deployments to claude.supported.systems\! 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
50 lines
1.1 KiB
YAML
50 lines
1.1 KiB
YAML
name: Test Build
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [ master ]
|
|
|
|
jobs:
|
|
test-build:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
|
|
- name: Test Docker build
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
context: .
|
|
platforms: linux/amd64
|
|
push: false
|
|
cache-from: type=gha
|
|
cache-to: type=gha,mode=max
|
|
|
|
- name: Test container startup
|
|
run: |
|
|
docker build -t test-build .
|
|
docker run -d --name test-container -p 8080:80 test-build
|
|
sleep 10
|
|
|
|
# Test health endpoint
|
|
if curl -f "http://localhost:8080/health"; then
|
|
echo "✅ Health check passed"
|
|
else
|
|
echo "❌ Health check failed"
|
|
exit 1
|
|
fi
|
|
|
|
# Test main page
|
|
if curl -f "http://localhost:8080/" > /dev/null; then
|
|
echo "✅ Main page accessible"
|
|
else
|
|
echo "❌ Main page failed"
|
|
exit 1
|
|
fi
|
|
|
|
docker stop test-container
|
|
docker rm test-container |