diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 165524c2c..5eb3074d7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -326,11 +326,36 @@ jobs: ext: '.exe' - target: x86_64-unknown-linux-gnu os: ubuntu-latest + env: + # PG_* variables are used by psql + PGDATABASE: test + PGHOST: localhost + PGUSER: postgres + PGPASSWORD: postgres + services: + postgres: + image: postgis/postgis:15-3.3 + ports: + - 5432/tcp + options: >- + -e POSTGRES_DB=test + -e POSTGRES_USER=postgres + -e POSTGRES_PASSWORD=postgres + -e PGDATABASE=test + -e PGUSER=postgres + -e PGPASSWORD=postgres + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + --entrypoint sh + postgis/postgis:15-3.3 + -c "exec docker-entrypoint.sh postgres -c ssl=on -c ssl_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem -c ssl_key_file=/etc/ssl/private/ssl-cert-snakeoil.key" steps: - - name: Install and run Postgis - uses: nyurik/action-setup-postgis@v2 - id: pg - with: { username: 'test', password: 'test', database: 'test' } + # - name: Install and run Postgis + # uses: nyurik/action-setup-postgis@v2 + # id: pg + # with: { username: 'test', password: 'test', database: 'test' } - name: Start NGINX uses: nyurik/action-setup-nginx@v1.1 id: nginx @@ -338,13 +363,9 @@ jobs: - name: Checkout sources uses: actions/checkout@v4 - name: Init database - run: | - echo "DATABASE_URL=${{ steps.pg.outputs.connection-uri }}" - echo "Print the same in base64 to bypass Github's obfuscation (uses hardcoded password):" - echo "${{ steps.pg.outputs.connection-uri }}" | base64 - tests/fixtures/initdb.sh + run: tests/fixtures/initdb.sh env: - PGSERVICE: ${{ steps.pg.outputs.service-name }} + PGPORT: ${{ job.services.postgres.ports[5432] }} - name: Copy static files run: cp -r tests/fixtures/pmtiles2/* ${{ steps.nginx.outputs.html-dir }} - name: Download build artifact build-${{ matrix.target }} @@ -363,7 +384,7 @@ jobs: fi tests/test.sh env: - DATABASE_URL: ${{ steps.pg.outputs.connection-uri }} + DATABASE_URL: postgres://${{ env.PGUSER }}:${{ env.PGUSER }}@${{ env.PGHOST }}:${{ job.services.postgres.ports[5432] }}/${{ env.PGDATABASE }}?sslmode=require - name: Compare test output results (Linux) if: matrix.target == 'x86_64-unknown-linux-gnu' run: diff --brief --recursive --new-file tests/output tests/expected @@ -383,7 +404,7 @@ jobs: export MBTILES_BIN=/usr/bin/mbtiles${{ matrix.ext }} tests/test.sh env: - DATABASE_URL: ${{ steps.pg.outputs.connection-uri }} + DATABASE_URL: postgres://${{ env.PGUSER }}:${{ env.PGUSER }}@${{ env.PGHOST }}:${{ job.services.postgres.ports[5432] }}/${{ env.PGDATABASE }}?sslmode=require - name: Save test output (on error) if: failure() uses: actions/upload-artifact@v4