name: test on: push: branches: - main pull_request: branches: - main concurrency: group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' cancel-in-progress: true jobs: test: name: test runs-on: ubuntu-latest services: postgres: image: postgres:14-alpine env: POSTGRES_PASSWORD: postgres options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 10s --health-retries 5 redis: image: redis options: >- --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5 container: golang:1.24.0 steps: - uses: actions/checkout@v3 - name: test run: make mod test coverage env: TEST_DATABASE_URL: postgres://postgres:postgres@postgres:5432/postgres?sslmode=disable&pool_max_conns=8 TEST_REDIS_URL: redis:6379 - name: upload results uses: actions/upload-artifact@v4 with: name: Upload test coverage path: tmp/coverage - name: function coverage run: make func-coverage