name: Unit tests
run-name: ${{ gitea.actor }} is testing
on: push

jobs:
  test:
    runs-on: ubuntu-latest

    # Service containers to run with `runner-job`
    services:
      # Label used to access the service container
      postgres:
        # Docker Hub image
        image: postgres
        # Provide the password for postgres
        env:
          POSTGRES_HOST: postgres
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres
        # Set health checks to wait until postgres has started
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5
        ports:
          # Maps tcp port 5432 on service container to the host
          - 5442:5432
        
    steps:
      - name: Setup dotnet
        if: ${{ steps.cache-dotnet.outputs.cache-hit != 'true' }}
        uses: actions/setup-dotnet@v4
        with:
          dotnet-version: 8.0.x
      - name: Check out repository code
        uses: actions/checkout@v4
      - name: Run integration tests
        run: dotnet test DD.Persistence.IntegrationTests