name: 🛠🐘 PostgreSQL 10+ tests
run-name: Run database tests on PostgreSQL on dispatch. Run No ${{ github.run_number }}.
on:
  workflow_dispatch:
    inputs:
      specific_sha:
        description: 'Commit SHA to checkout'
        required: false
        default: ''
        type: string
      show_all_fails:
        description: 'No mute tests'
        type: boolean
        default: false
        required: true
      pgsql100:
        description: 'PostgreSQL 10'
        type: boolean
        default: false
        required: true
      pgsql110:
        description: 'PostgreSQL 11'
        type: boolean
        default: true
        required: true

# new commits with the same key will cancel previously run workflows
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

permissions:
  contents: read
  actions: read
  checks: write

jobs:
  test_on_pgsql100:
    name: Tests on PostgreSQL 10
    if: ${{ inputs.pgsql100 }}
    strategy:
      matrix:
        net: [ 'netcoreapp2.0' ]
    uses: DataObjects-NET/dataobjects-net/.github/workflows/reusable-storage-dependant-tests.yml@6.0
    with:
      storage: pgsql100
      build_config: Release
      target_framework: ${{ matrix.net }}
      specific_sha: ${{ inputs.specific_sha }}
      show_all_fails: ${{ fromJSON(inputs.show_all_fails) }}
      test_output_verbosity: minimal
      test_run_timeout: 30
      run_main: true
      run_sql: true
      run_extensions: true
      publish_raw_results: true

  test_on_pgsql110:
    name: Tests on PostgreSQL 11
    if: ${{ inputs.pgsql110 }}
    strategy:
      matrix:
        net: [ 'netcoreapp2.0' ]
    uses: DataObjects-NET/dataobjects-net/.github/workflows/reusable-storage-dependant-tests.yml@6.0
    with:
      storage: pgsql110
      build_config: Release
      target_framework: ${{ matrix.net }}
      specific_sha: ${{ inputs.specific_sha }}
      show_all_fails: ${{ fromJSON(inputs.show_all_fails) }}
      test_output_verbosity: minimal
      test_run_timeout: 30
      run_main: true
      run_sql: true
      run_extensions: true
      publish_raw_results: true
