diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml index b495251..e27ddae 100644 --- a/.gitea/workflows/test.yml +++ b/.gitea/workflows/test.yml @@ -11,20 +11,6 @@ on: jobs: test: 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: - name: Checkout @@ -34,18 +20,26 @@ jobs: uses: actions/setup-dotnet@v4 with: 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 run: | for i in $(seq 1 30); do - if (echo > /dev/tcp/postgres/5432) 2>/dev/null; then - echo "Postgres is reachable" + if pg_isready -h localhost -p 5432 -U tnsu_approval_route -d tnsu_approval_route; then + echo "Postgres is ready" exit 0 fi echo "Waiting for postgres... ($i/30)" sleep 2 done - echo "Postgres did not become reachable in time" >&2 + echo "Postgres did not become ready in time" >&2 exit 1 - name: Restore @@ -56,7 +50,5 @@ jobs: - name: Test env: - # act_runner запускает джобу в отдельном контейнере на одной docker-сети с сервисами — - # 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" + TEST_POSTGRES_CONNECTION: "Host=localhost;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