апи для работы с маршрутами согласования #2

Merged
admin merged 38 commits from initial-api into main 2026-07-27 13:14:32 +00:00
Showing only changes of commit 9921c1f4b3 - Show all commits
+13 -21
View File
@@ -11,20 +11,6 @@ on:
jobs: jobs:
test: test:
runs-on: ubuntu-latest runs-on: ubuntu-latest
services:
postgres:
image: postgres:16-alpine
env:
POSTGRES_DB: tnsu_approval_route
POSTGRES_USER: tnsu_approval_route
POSTGRES_PASSWORD: tnsu_approval_route
ports:
- 5432:5432
options: >-
--health-cmd "pg_isready -U tnsu_approval_route -d tnsu_approval_route"
--health-interval 5s
--health-timeout 3s
--health-retries 10
steps: steps:
- name: Checkout - name: Checkout
@@ -34,18 +20,26 @@ jobs:
uses: actions/setup-dotnet@v4 uses: actions/setup-dotnet@v4
with: with:
dotnet-version: '10.0.x' dotnet-version: '10.0.x'
- name: Install PostgreSQL
run: |
sudo apt-get update
sudo apt-get install -y postgresql
sudo systemctl start postgresql
sudo -u postgres psql -c "CREATE USER tnsu_approval_route WITH PASSWORD 'tnsu_approval_route' SUPERUSER;"
sudo -u postgres psql -c "CREATE DATABASE tnsu_approval_route OWNER tnsu_approval_route;"
- name: Wait for Postgres - name: Wait for Postgres
run: | run: |
for i in $(seq 1 30); do for i in $(seq 1 30); do
if (echo > /dev/tcp/postgres/5432) 2>/dev/null; then if pg_isready -h localhost -p 5432 -U tnsu_approval_route -d tnsu_approval_route; then
echo "Postgres is reachable" echo "Postgres is ready"
exit 0 exit 0
fi fi
echo "Waiting for postgres... ($i/30)" echo "Waiting for postgres... ($i/30)"
sleep 2 sleep 2
done done
echo "Postgres did not become reachable in time" >&2 echo "Postgres did not become ready in time" >&2
exit 1 exit 1
- name: Restore - name: Restore
@@ -56,7 +50,5 @@ jobs:
- name: Test - name: Test
env: env:
# act_runner запускает джобу в отдельном контейнере на одной docker-сети с сервисами — TEST_POSTGRES_CONNECTION: "Host=localhost;Port=5432;Database=tnsu_approval_route;Username=tnsu_approval_route;Password=tnsu_approval_route"
# postgres здесь резолвится по имени сервиса, а не через localhost/127.0.0.1 (это не VM, как в GitHub-hosted runners).
TEST_POSTGRES_CONNECTION: "Host=postgres;Port=5432;Database=tnsu_approval_route;Username=tnsu_approval_route;Password=tnsu_approval_route"
run: dotnet test backend/Tnsu.ApprovalRoute.sln --no-build -c Release run: dotnet test backend/Tnsu.ApprovalRoute.sln --no-build -c Release