name: kotlin
on:
  push:
    branches:
      - main
  pull_request:
jobs:

  build:
    name: test
    runs-on: ubuntu-latest

    services:
      postgres:
        image: postgres:11
        env:
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres
          POSTGRES_DB: postgres
        ports:
          - 5432:5432
        # needed because the postgres container does not provide a healthcheck
        options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
      mysql:
        image: mysql:8
        env:
          MYSQL_ROOT_PASSWORD: mysecretpassword
          MYSQL_DATABASE: mysql
        ports:
          - 3306:3306

    steps:
      - uses: actions/checkout@v2.4.0
      - uses: actions/setup-java@v2
        with:
          distribution: 'adopt'
          java-version: '11'
      - uses: eskatos/gradle-command-action@v2
        env:
          PG_USER: postgres
          PG_HOST: localhost
          PG_DATABASE: postgres
          PG_PASSWORD: postgres
          PG_PORT: ${{ job.services.postgres.ports['5432'] }}
          MYSQL_DATABASE: mysql
          MYSQL_HOST: localhost
          MYSQL_PORT: ${{ job.services.mysql.ports['3306'] }}
          MYSQL_ROOT_PASSWORD: mysecretpassword
        with:
          build-root-directory: examples/kotlin
          wrapper-directory: examples/kotlin
          arguments: test --scan
