Skip to content

Commit 45631ae

Browse files
authored
Merge pull request #26 from touchmegit1/dev
feat: enhance database deployment checks and validation for DB_URL and critical table counts
2 parents 6d5490e + a488a67 commit 45631ae

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

.github/workflows/cd.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,11 +211,27 @@ jobs:
211211
DB_PASSWORD="$(get_env_value DB_PASSWORD)"
212212
MYSQL_DATABASE="$(get_env_value MYSQL_DATABASE)"
213213
MYSQL_ROOT_PASSWORD="$(get_env_value MYSQL_ROOT_PASSWORD)"
214+
DB_URL="$(get_env_value DB_URL)"
214215
215216
: "${DB_USERNAME:=smalltrend}"
216217
: "${DB_PASSWORD:=1234}"
217218
: "${MYSQL_DATABASE:=smalltrend}"
218219
: "${MYSQL_ROOT_PASSWORD:=root1234}"
220+
: "${DB_URL:=jdbc:mysql://mysql:3306/${MYSQL_DATABASE}?allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=UTC&createDatabaseIfNotExist=true}"
221+
222+
# Prevent false-positive seed checks when backend points to a different DB/schema.
223+
if [[ "$DB_URL" != *"mysql:3306"* ]]; then
224+
echo "ERROR: DB_URL must point to mysql service in docker compose (mysql:3306)."
225+
echo "Current DB_URL: $DB_URL"
226+
exit 1
227+
fi
228+
229+
if [[ "$DB_URL" != *"/${MYSQL_DATABASE}"* ]]; then
230+
echo "ERROR: DB_URL database does not match MYSQL_DATABASE."
231+
echo "MYSQL_DATABASE=$MYSQL_DATABASE"
232+
echo "DB_URL=$DB_URL"
233+
exit 1
234+
fi
219235
220236
echo "$DOCKERHUB_TOKEN" | sudo docker login -u "$DOCKERHUB_USERNAME" --password-stdin
221237
@@ -277,6 +293,17 @@ jobs:
277293
fi
278294
fi
279295
296+
PRODUCTS_COUNT_FINAL="$(get_table_count products || echo 0)"
297+
VARIANTS_COUNT_FINAL="$(get_table_count product_variants || echo 0)"
298+
STOCK_COUNT_FINAL="$(get_table_count inventory_stock || echo 0)"
299+
echo "Post-start final counts: products=$PRODUCTS_COUNT_FINAL, variants=$VARIANTS_COUNT_FINAL, inventory_stock=$STOCK_COUNT_FINAL"
300+
301+
if [ "${PRODUCTS_COUNT_FINAL:-0}" = "0" ] || [ "${VARIANTS_COUNT_FINAL:-0}" = "0" ]; then
302+
echo "ERROR: Critical tables are still empty after deploy + seed."
303+
sudo env REGISTRY="$REGISTRY" IMAGE_NAMESPACE="$IMAGE_NAMESPACE" IMAGE_TAG="$TARGET_TAG" DB_USERNAME="$DB_USERNAME" DB_PASSWORD="$DB_PASSWORD" MYSQL_DATABASE="$MYSQL_DATABASE" MYSQL_ROOT_PASSWORD="$MYSQL_ROOT_PASSWORD" docker compose -f docker-compose.prod.yml logs --tail=150 mysql backend || true
304+
exit 1
305+
fi
306+
280307
MAX_RETRIES=12
281308
RETRY_DELAY=10
282309
ATTEMPT=1

0 commit comments

Comments
 (0)