matrix:
  ELIXIR_VERSION:
  - 1.13

pipeline:
  lint:
    when:
      event:
      - pull_request
    image: pleromaforkci/ci-base:1.13
    commands:
    - mix local.hex --force
    - mix local.rebar --force
    - mix format --check-formatted

  build:
    image: pleromaforkci/ci-base:${ELIXIR_VERSION}
    when:
      event:
      - pull_request
    environment:
      MIX_ENV: test
    commands:
    - mix local.hex --force
    - mix local.rebar --force
    - mix deps.get
    - mix compile

  test:
    group: test
    image: pleromaforkci/ci-base:${ELIXIR_VERSION}
    when:
      event:
      - pull_request
    environment:
      MIX_ENV: test
      POSTGRES_DB: pleroma_test
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      DB_HOST: postgres
    commands:
    - mix local.hex --force
    - mix local.rebar --force
    - mix deps.get
    - mix ecto.drop -f -q
    - mix ecto.create
    - mix ecto.migrate
    - mix test --preload-modules --exclude erratic --exclude federated --max-cases 4
     
services:
  postgres:
    image: postgres:13
    when:
      event:
      - pull_request
    environment:
      POSTGRES_DB: pleroma_test
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres