x-mysql_env: &mysql_env
  MYSQL_DATABASE: "unit_test_db"
  MYSQL_USER: "unit_test_user"
  MYSQL_PASSWORD: "unit_test_user_password"

services:
  unit_test_mysql:
    image: mysql:8.0.36
    environment:
      <<: *mysql_env
      MYSQL_RANDOM_ROOT_PASSWORD: "yes"
    healthcheck:
      test:
        - CMD-SHELL
        - >
          mysql
          --host=127.0.0.1
          --database="$$MYSQL_DATABASE"
          --user="$$MYSQL_USER"
          --password="$$MYSQL_PASSWORD"
          --connect-timeout=2
          --execute "SELECT 1"
          >/dev/null 2>&1
      interval: 2s
      timeout: 5s
      retries: 60
      start_period: 60s
    tmpfs:
      - /var/lib/mysql

  unit_tests_82:
    build:
      context: .
      dockerfile: Dockerfile
    environment:
      Environment: "testing"
      MYSQL_HOST: "unit_test_mysql"
      MYSQL_PORT: "3306"
      <<: *mysql_env
    depends_on:
      unit_test_mysql:
        condition: service_healthy
    volumes:
      - ./build:/var/app/build
    init: true

  unit_tests_84:
    build:
      context: .
      dockerfile: Dockerfile84.tests
    environment:
      Environment: "testing"
      MYSQL_HOST: "unit_test_mysql"
      MYSQL_PORT: "3306"
      <<: *mysql_env
    depends_on:
      unit_test_mysql:
        condition: service_healthy
    volumes:
      - ./build:/var/app/build
    init: true
