ci(backend): убрать конфликт контейнера PostgreSQL в тестах

На общем Docker-раннере имя mm-pg и порт 5432 сталкивались с прошлым запуском. Контейнер и порт теперь уникальны, старый mm-pg снимается.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
Denozordec
2026-09-08 09:34:29 +07:00
co-authored by Cursor
parent 30a8ec4420
commit 35eff46e76
+14 -5
View File
@@ -53,30 +53,39 @@ jobs:
shell: bash shell: bash
run: | run: |
set -euo pipefail set -euo pipefail
docker run -d --name mm-pg \ NAME="mm-pg-${{ gitea.run_id }}-${{ gitea.run_attempt }}"
docker rm -f "$NAME" mm-pg 2>/dev/null || true
HOST_PORT=$(python3 -c 'import socket; s=socket.socket(); s.bind(("127.0.0.1", 0)); print(s.getsockname()[1]); s.close()')
docker run -d --name "$NAME" --rm \
-e POSTGRES_USER=mmapp \ -e POSTGRES_USER=mmapp \
-e POSTGRES_PASSWORD=mmapp \ -e POSTGRES_PASSWORD=mmapp \
-e POSTGRES_DB=mmapp \ -e POSTGRES_DB=mmapp \
-p 5432:5432 \ -p "127.0.0.1:${HOST_PORT}:5432" \
postgres:18-alpine postgres:18-alpine
echo "PG_CONTAINER=$NAME" >> "${GITHUB_ENV}"
echo "DATABASE_URL=postgres://mmapp:[email protected]:${HOST_PORT}/mmapp" >> "${GITHUB_ENV}"
for i in $(seq 1 40); do for i in $(seq 1 40); do
if docker exec mm-pg pg_isready -U mmapp -d mmapp; then if docker exec "$NAME" pg_isready -U mmapp -d mmapp; then
exit 0 exit 0
fi fi
sleep 1 sleep 1
done done
echo "PostgreSQL не поднялся" echo "PostgreSQL не поднялся"
docker logs "$NAME" || true
exit 1 exit 1
- name: Install and test backend - name: Install and test backend
shell: bash shell: bash
env:
DATABASE_URL: postgres://mmapp:[email protected]:5432/mmapp
run: | run: |
set -euo pipefail set -euo pipefail
npm ci npm ci
npm run test --prefix backend npm run test --prefix backend
- name: Stop PostgreSQL
if: always()
shell: bash
run: docker rm -f "${PG_CONTAINER:-}" mm-pg 2>/dev/null || true
backend-image: backend-image:
needs: needs:
- prepare-release - prepare-release