on: push: branches: - main pull_request: branches: - main name: Code coverage jobs: grcov: runs-on: ubuntu-latest services: postgres: image: postgis/postgis:13-3.1-alpine env: POSTGRES_DB: test POSTGRES_USER: postgres POSTGRES_HOST_AUTH_METHOD: trust ports: - 5432/tcp options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 steps: - name: Checkout sources uses: actions/checkout@v3 - name: Setup database run: | sudo apt-get install postgresql-client psql -h $POSTGRES_HOST -p $POSTGRES_PORT -U postgres -d test -f tests/fixtures/TileBBox.sql psql -h $POSTGRES_HOST -p $POSTGRES_PORT -U postgres -d test -f tests/fixtures/table_source.sql psql -h $POSTGRES_HOST -p $POSTGRES_PORT -U postgres -d test -f tests/fixtures/table_source_multiple_geom.sql psql -h $POSTGRES_HOST -p $POSTGRES_PORT -U postgres -d test -f tests/fixtures/function_source.sql psql -h $POSTGRES_HOST -p $POSTGRES_PORT -U postgres -d test -f tests/fixtures/function_source_query_params.sql psql -h $POSTGRES_HOST -p $POSTGRES_PORT -U postgres -d test -f tests/fixtures/points1_source.sql psql -h $POSTGRES_HOST -p $POSTGRES_PORT -U postgres -d test -f tests/fixtures/points2_source.sql psql -h $POSTGRES_HOST -p $POSTGRES_PORT -U postgres -d test -f tests/fixtures/points3857_source.sql psql -h $POSTGRES_HOST -p $POSTGRES_PORT -U postgres -d test -f tests/fixtures/points_empty_srid_source.sql env: POSTGRES_HOST: localhost POSTGRES_PORT: ${{ job.services.postgres.ports[5432] }} - name: Install nightly toolchain uses: dtolnay/rust-toolchain@master with: toolchain: nightly override: true - name: Run tests run: cargo test --all env: CARGO_INCREMENTAL: '0' RUSTFLAGS: '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests' RUSTDOCFLAGS: '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests' DATABASE_URL: postgres://postgres@localhost:${{ job.services.postgres.ports[5432] }}/test - name: Gather coverage data id: coverage uses: actions-rs/grcov@v0.1 - name: Codecov upload uses: codecov/codecov-action@v3 with: file: ${{ steps.coverage.outputs.report }}