From 410b1ee74316cd09f9fb19aa5ebcfb61638f8996 Mon Sep 17 00:00:00 2001 From: Hein Date: Sun, 28 Dec 2025 15:57:26 +0200 Subject: [PATCH] Manual docker --- .github/workflows/integration-tests.yml | 44 ++++++++++--------------- 1 file changed, 17 insertions(+), 27 deletions(-) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index e95f328..7110dbb 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -11,21 +11,6 @@ jobs: name: Integration Tests runs-on: ubuntu-latest - services: - postgres: - image: postgres:16-alpine - env: - POSTGRES_USER: relspec - POSTGRES_PASSWORD: relspec_test_password - POSTGRES_DB: relspec_test - ports: - - 5439:5432 - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - steps: - name: Checkout code uses: actions/checkout@v4 @@ -46,18 +31,21 @@ jobs: - name: Download dependencies run: go mod download - - name: Install PostgreSQL client + - name: Start PostgreSQL container run: | - sudo apt-get update - sudo apt-get install -y postgresql-client + docker run -d \ + --name relspec-test-postgres \ + -e POSTGRES_USER=relspec \ + -e POSTGRES_PASSWORD=relspec_test_password \ + -e POSTGRES_DB=relspec_test \ + -p 5439:5432 \ + postgres:16-alpine - name: Wait for PostgreSQL to be ready - env: - PGPASSWORD: relspec_test_password run: | echo "Waiting for PostgreSQL to be ready..." for i in {1..30}; do - if pg_isready -h localhost -p 5439 -U relspec > /dev/null 2>&1; then + if docker exec relspec-test-postgres pg_isready -U relspec -d relspec_test > /dev/null 2>&1; then echo "PostgreSQL is ready!" break fi @@ -68,17 +56,13 @@ jobs: sleep 2 - name: Initialize test database - env: - PGPASSWORD: relspec_test_password run: | - psql -h localhost -p 5439 -U relspec -d relspec_test -f tests/postgres/init.sql + docker exec -i relspec-test-postgres psql -U relspec -d relspec_test < tests/postgres/init.sql - name: Verify database setup - env: - PGPASSWORD: relspec_test_password run: | echo "Verifying database initialization..." - psql -h localhost -p 5439 -U relspec -d relspec_test -c " + docker exec relspec-test-postgres psql -U relspec -d relspec_test -c " SELECT (SELECT COUNT(*) FROM pg_namespace WHERE nspname NOT IN ('pg_catalog', 'information_schema', 'pg_toast') AND nspname NOT LIKE 'pg_%') as schemas, (SELECT COUNT(*) FROM pg_tables WHERE schemaname NOT IN ('pg_catalog', 'information_schema')) as tables, @@ -90,3 +74,9 @@ jobs: env: RELSPEC_TEST_PG_CONN: postgres://relspec:relspec_test_password@localhost:5439/relspec_test run: make test-integration + + - name: Stop PostgreSQL container + if: always() + run: | + docker stop relspec-test-postgres || true + docker rm relspec-test-postgres || true