7171 runs-on : ubuntu-latest
7272
7373 strategy :
74+ fail-fast : false
7475 matrix :
7576 version : ['main', '2.0.0']
7677
@@ -91,23 +92,28 @@ jobs:
9192 cd devops/sandbox
9293 ./run.sh -c ${{ matrix.version }}
9394
94- echo "Waiting for Apache Cloudberry deployment to complete..."
95- timeout 120 bash -c 'until docker logs cbdb-cdw 2>&1 | grep -q "DEPLOYMENT SUCCESSFUL"; do sleep 10; echo "Still waiting for deployment..."; done'
96- echo "Deployment completed successfully!"
97- timeout-minutes : 30
98-
99- - name : Test database operations
100- run : |
101- echo "Waiting for database readiness (up to 60s)..."
102- for i in {1..12}; do
103- if docker exec -u gpadmin cbdb-cdw bash -l -c "pg_isready -h localhost -p 5432 -U gpadmin" >/dev/null 2>&1; then
104- echo "Database is ready."
95+ echo "Waiting for deployment to complete..."
96+ for i in {1..30}; do
97+ if docker logs cbdb-cdw 2>&1 | grep -q "DEPLOYMENT SUCCESSFUL"; then
98+ echo "✅ Deployment completed successfully"
10599 break
106100 fi
107- if [ "$i" -eq 12 ]; then
108- echo "Database did not become ready in time."
101+ if ! docker ps | grep -q cbdb-cdw; then
102+ echo "ERROR: Container stopped unexpectedly"
103+ docker logs cbdb-cdw
109104 exit 1
110105 fi
106+ [ $i -eq 30 ] && echo "ERROR: Deployment timeout" && docker logs cbdb-cdw && exit 1
107+ sleep 10
108+ done
109+ timeout-minutes : 30
110+
111+ - name : Test database operations
112+ run : |
113+ echo "Waiting for database readiness..."
114+ for i in {1..24}; do
115+ docker exec -u gpadmin cbdb-cdw bash -l -c "pg_isready -h localhost -p 5432 -U gpadmin" >/dev/null 2>&1 && break
116+ [ $i -eq 24 ] && echo "ERROR: Database not ready" && exit 1
111117 sleep 5
112118 done
113119
@@ -116,10 +122,10 @@ jobs:
116122
117123 echo "Verifying segment configuration..."
118124 docker exec -u gpadmin cbdb-cdw bash -l -c "psql -c 'SELECT * FROM gp_segment_configuration'"
119-
125+
120126 echo "Checking available extensions..."
121127 docker exec -u gpadmin cbdb-cdw bash -l -c "psql -c 'SELECT * FROM pg_available_extensions'"
122-
128+
123129 echo "✅ Single node test (${{ matrix.version }}) completed successfully"
124130
125131 - name : Check container logs on failure
@@ -131,18 +137,21 @@ jobs:
131137 docker logs --tail 100 cbdb-cdw || true
132138 echo "=== Container Resource Usage ==="
133139 docker stats --no-stream cbdb-cdw || true
140+ echo "=== Disk Status ==="
141+ df -h
134142
135143 - name : Cleanup
136144 if : always()
137145 run : |
138146 docker rm -f cbdb-cdw || true
139- docker system prune -af || true
147+ docker system prune -af --volumes || true
140148
141149 test-multi-node-build :
142150 name : Test Multi Node Build
143151 runs-on : ubuntu-latest
144152
145153 strategy :
154+ fail-fast : false
146155 matrix :
147156 version : ['main', '2.0.0']
148157
@@ -163,32 +172,36 @@ jobs:
163172 cd devops/sandbox
164173 ./run.sh -c ${{ matrix.version }} -m
165174
166- sleep 120 # Wait for containers to initialize
167175 echo "Waiting for Apache Cloudberry multi-node deployment to complete..."
168- timeout 120 bash -c 'until docker logs cbdb-cdw 2>&1 | grep -q "DEPLOYMENT SUCCESSFUL"; do sleep 15; echo "Still waiting for multi-node deployment..."; done'
169- echo "Multi-node deployment completed successfully!"
176+ for i in {1..24}; do
177+ if docker logs cbdb-cdw 2>&1 | grep -q "DEPLOYMENT SUCCESSFUL"; then
178+ echo "✅ Multi-node deployment completed"
179+ break
180+ fi
181+ if ! docker ps | grep -q cbdb-cdw; then
182+ echo "ERROR: Coordinator stopped unexpectedly"
183+ docker logs cbdb-cdw
184+ exit 1
185+ fi
186+ [ $i -eq 24 ] && echo "ERROR: Deployment timeout" && docker logs cbdb-cdw && exit 1
187+ sleep 15
188+ done
170189 timeout-minutes : 30
171190
172191 - name : Test SSH connectivity between nodes
173192 run : |
174193 echo "Testing SSH connectivity from coordinator to all nodes..."
175- docker exec -u gpadmin cbdb-cdw bash -l -c "ssh -o StrictHostKeyChecking=no sdw1 'hostname'"
176- docker exec -u gpadmin cbdb-cdw bash -l -c "ssh -o StrictHostKeyChecking=no sdw2 'hostname'"
177- docker exec -u gpadmin cbdb-cdw bash -l -c "ssh -o StrictHostKeyChecking=no scdw 'hostname'"
178- echo "✅ SSH connectivity test passed "
194+ docker exec -u gpadmin cbdb-cdw bash -l -c "ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 sdw1 'hostname'"
195+ docker exec -u gpadmin cbdb-cdw bash -l -c "ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 sdw2 'hostname'"
196+ docker exec -u gpadmin cbdb-cdw bash -l -c "ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 scdw 'hostname'"
197+ echo "✅ SSH connectivity verified "
179198
180199 - name : Test database operations
181200 run : |
182- echo "Waiting for database readiness (up to 60s)..."
183- for i in {1..12}; do
184- if docker exec -u gpadmin cbdb-cdw bash -l -c "pg_isready -h localhost -p 5432 -U gpadmin" >/dev/null 2>&1; then
185- echo "Database is ready."
186- break
187- fi
188- if [ "$i" -eq 12 ]; then
189- echo "Database did not become ready in time."
190- exit 1
191- fi
201+ echo "Waiting for database readiness..."
202+ for i in {1..24}; do
203+ docker exec -u gpadmin cbdb-cdw bash -l -c "pg_isready -h localhost -p 5432 -U gpadmin" >/dev/null 2>&1 && break
204+ [ $i -eq 24 ] && echo "ERROR: Database not ready" && exit 1
192205 sleep 5
193206 done
194207
@@ -218,13 +231,16 @@ jobs:
218231 docker logs --tail 50 cbdb-sdw2 || true
219232 echo "=== Network Status ==="
220233 docker network ls || true
234+ echo "=== Disk Status ==="
235+ df -h
221236
222237 - name : Cleanup
223238 if : always()
224239 run : |
225240 cd devops/sandbox
226- docker compose -f docker-compose-rockylinux9.yml down -v || true
227- docker system prune -af || true
241+ docker compose -f docker-compose-rockylinux9.yml down -v --remove-orphans || true
242+ docker network rm cbdb-interconnect || true
243+ docker system prune -af --volumes || true
228244
229245 notify-results :
230246 name : Notify Results
0 commit comments