|
15 | 15 | - name: Checkout code |
16 | 16 | uses: actions/checkout@v4 |
17 | 17 |
|
| 18 | + - name: Install Docker Compose CLI |
| 19 | + run: | |
| 20 | + sudo apt-get update |
| 21 | + sudo apt-get install -y docker-compose-plugin |
| 22 | + docker compose version |
| 23 | +
|
18 | 24 | - name: Set up Docker Buildx |
19 | 25 | uses: docker/setup-buildx-action@v3 |
20 | 26 |
|
@@ -45,17 +51,21 @@ jobs: |
45 | 51 | STAGING_API_TOKENS: ${{ secrets.STAGING_API_TOKENS }} |
46 | 52 | run: | |
47 | 53 | echo "Deploying to staging environment..." |
48 | | - docker-compose -f docker-compose.staging.yml down || true |
49 | | - docker-compose -f docker-compose.staging.yml pull |
50 | | - docker-compose -f docker-compose.staging.yml up -d |
| 54 | + docker compose -f docker-compose.staging.yml down || true |
| 55 | + docker compose -f docker-compose.staging.yml pull |
| 56 | + docker compose -f docker-compose.staging.yml up -d |
51 | 57 |
|
52 | 58 | - name: Health check staging |
53 | 59 | run: | |
54 | 60 | echo "Performing health check on staging..." |
55 | | - # Wait for service to be ready |
56 | 61 | timeout 60 bash -c 'until curl -f http://localhost:8001/health; do sleep 2; done' |
57 | 62 | echo "Staging deployment successful!" |
58 | 63 |
|
| 64 | + - name: Print logs on failure |
| 65 | + if: failure() |
| 66 | + run: | |
| 67 | + docker compose logs |
| 68 | +
|
59 | 69 | deploy-production: |
60 | 70 | if: github.event.workflow_run.conclusion == 'success' && github.ref == 'refs/heads/main' |
61 | 71 | runs-on: ubuntu-latest |
|
65 | 75 | - name: Checkout code |
66 | 76 | uses: actions/checkout@v4 |
67 | 77 |
|
| 78 | + - name: Install Docker Compose CLI |
| 79 | + run: | |
| 80 | + sudo apt-get update |
| 81 | + sudo apt-get install -y docker-compose-plugin |
| 82 | + docker compose version |
| 83 | +
|
68 | 84 | - name: Set up Docker Buildx |
69 | 85 | uses: docker/setup-buildx-action@v3 |
70 | 86 |
|
@@ -95,17 +111,21 @@ jobs: |
95 | 111 | PRODUCTION_API_TOKENS: ${{ secrets.PRODUCTION_API_TOKENS }} |
96 | 112 | run: | |
97 | 113 | echo "Deploying to production environment..." |
98 | | - docker-compose -f docker-compose.production.yml down || true |
99 | | - docker-compose -f docker-compose.production.yml pull |
100 | | - docker-compose -f docker-compose.production.yml up -d |
| 114 | + docker compose -f docker-compose.production.yml down || true |
| 115 | + docker compose -f docker-compose.production.yml pull |
| 116 | + docker compose -f docker-compose.production.yml up -d |
101 | 117 |
|
102 | 118 | - name: Health check production |
103 | 119 | run: | |
104 | 120 | echo "Performing health check on production..." |
105 | | - # Wait for service to be ready |
106 | 121 | timeout 60 bash -c 'until curl -f http://localhost:8000/health; do sleep 2; done' |
107 | 122 | echo "Production deployment successful!" |
108 | 123 |
|
| 124 | + - name: Print logs on failure |
| 125 | + if: failure() |
| 126 | + run: | |
| 127 | + docker compose logs |
| 128 | +
|
109 | 129 | - name: Notify deployment success |
110 | 130 | run: | |
111 | 131 | echo "🚀 Deployment to production completed successfully!" |
|
0 commit comments