freebsd_instance:
  image_family: freebsd-13-1
  cpu: 2
  memory: 4G

test_task:
  name: "Tests / FreeBSD / "
  only_if: $CIRRUS_TAG == ''
  skip: "!changesInclude('.cirrus.yml', 'poetry.lock', 'pyproject.toml', '**.json','**.py')"
  env:
    # `SHELL` environment variable is not set by default, so we explicitly set it to
    # avoid failures on tests that depend on it.
    SHELL: sh
    matrix:
      - PYTHON: python3.7
      - PYTHON: python3.8
      - PYTHON: python3.9
      - PYTHON: python3.10
      - PYTHON: python3.11
  install_prereqs_script:
    - V=$(printf '%s' $PYTHON | tr -d '.[:alpha:]')
    - pkg install -y python${V} py${V}-sqlite3
  install_poetry_script:
    - POETRY_HOME=/opt/poetry
    - $PYTHON -m venv $POETRY_HOME
    - $POETRY_HOME/bin/pip install --upgrade pip setuptools wheel
    - $POETRY_HOME/bin/pip install poetry
    - echo "PATH=$POETRY_HOME/bin:$PATH" >> $CIRRUS_ENV
  install_and_test_script:
    - poetry install
    - poetry run pytest --junitxml=junit.xml -v
  on_failure:
    annotate_failure_artifacts:
      path: junit.xml
      format: junit
      type: text/xml
