|
71 | 71 | - name: Deploy on server |
72 | 72 | run: | |
73 | 73 | ssh deployer@103.31.204.189 "cd ~/jvmid-bot && export DOCKER_UID=\$(id -u) DOCKER_GID=\$(id -g) && IMAGE_TAG=${{ github.run_number }} docker compose -f docker-compose.prod.yml pull && IMAGE_TAG=${{ github.run_number }} docker compose -f docker-compose.prod.yml up -d && docker image prune -f && echo 'Deployment complete (tag: ${{ github.run_number }}). Running containers:' && docker ps --filter 'name=jvmid-bot'" |
74 | | -
|
75 | | - - name: Health check |
76 | | - run: | |
77 | | - ssh deployer@103.31.204.189 ' |
78 | | - echo "=== Waiting for bot to start ===" |
79 | | - MAX_RETRIES=12 |
80 | | - RETRY_INTERVAL=10 |
81 | | - for i in $(seq 1 $MAX_RETRIES); do |
82 | | - # Check container is still running |
83 | | - if ! docker ps --filter "name=jvmid-bot" --filter "status=running" -q | grep -q .; then |
84 | | - echo "❌ Container is NOT running" |
85 | | - docker logs jvmid-bot --tail 50 2>&1 |
86 | | - exit 1 |
87 | | - fi |
88 | | -
|
89 | | - # Check if groups have been registered |
90 | | - GROUPS_LOADED=$(docker logs jvmid-bot 2>&1 | grep -c "Registered group" || true) |
91 | | - if [ "$GROUPS_LOADED" -ge 1 ]; then |
92 | | - break |
93 | | - fi |
94 | | -
|
95 | | - echo "Attempt $i/$MAX_RETRIES: Bot still starting... (waiting ${RETRY_INTERVAL}s)" |
96 | | - sleep $RETRY_INTERVAL |
97 | | - done |
98 | | -
|
99 | | - echo "" |
100 | | - echo "=== Container Status ===" |
101 | | - docker ps --filter "name=jvmid-bot" --format "table {{.Names}}\t{{.Status}}\t{{.RunningFor}}" |
102 | | -
|
103 | | - echo "" |
104 | | - echo "=== Bot Startup Logs ===" |
105 | | - docker logs jvmid-bot --tail 30 2>&1 |
106 | | -
|
107 | | - echo "" |
108 | | - echo "=== Health Checks ===" |
109 | | - # Final container check |
110 | | - if docker ps --filter "name=jvmid-bot" --filter "status=running" -q | grep -q .; then |
111 | | - echo "✅ Container is running" |
112 | | - else |
113 | | - echo "❌ Container is NOT running" |
114 | | - docker logs jvmid-bot --tail 50 2>&1 |
115 | | - exit 1 |
116 | | - fi |
117 | | -
|
118 | | - # Final groups check |
119 | | - GROUPS_LOADED=$(docker logs jvmid-bot 2>&1 | grep -c "Registered group" || true) |
120 | | - if [ "$GROUPS_LOADED" -ge 1 ]; then |
121 | | - echo "✅ $GROUPS_LOADED group(s) registered" |
122 | | - else |
123 | | - echo "❌ No groups registered - check groups.json and logs" |
124 | | - docker logs jvmid-bot --tail 50 2>&1 |
125 | | - exit 1 |
126 | | - fi |
127 | | -
|
128 | | - # Check no crash loops |
129 | | - RESTART_COUNT=$(docker inspect jvmid-bot --format="{{.RestartCount}}" 2>/dev/null || echo "0") |
130 | | - if [ "$RESTART_COUNT" -eq 0 ]; then |
131 | | - echo "✅ No restarts detected" |
132 | | - else |
133 | | - echo "⚠️ Container restarted $RESTART_COUNT time(s)" |
134 | | - fi |
135 | | -
|
136 | | - echo "" |
137 | | - echo "=== Deployment healthy ===" |
138 | | - ' |
0 commit comments