---
# Check the package repo on how to configure this job
# https://github.com/sandrochuber/pylic
include:
  - remote: https://jobs.just-ci.dev/v6.1.0-beta.1/python/generic.yml

variables:
  PYLIC_SKIP_EXTRAS: "" # Comma-separated list of extras that are to be skipped

python:pylic:
  extends: .python:pre
  variables:
    PACKAGE: importlib_metadata
  script:
    # work in venv
    - python3 -m venv .venv
    - source .venv/bin/activate
    - !reference [".python:pre", script]
    # install package without any of its dependencies
    - pip3 install . --no-deps
    # Extract package extras from metadata
    - EXTRAS=$(python -c "from importlib_metadata import metadata;
      print(','.join((extra for extra in
      metadata('${PYTHON_PACKAGE}').get_all('Provides-Extra', []) if not extra
      in '${PYLIC_SKIP_EXTRAS}'.split(','))), end='')")
    # work in venv
    - python3 -m venv .venv
    - source .venv/bin/activate
    - pip3 install pylic
    # if any extra dependencies are found, install them too
    - |
      if [ -z "${EXTRAS}" ]; then
        echo "[*] Installing package without extras."
        pip3 install .
      else
        echo "[*] Installing package with extras: ${EXTRAS}"
        pip3 install .[${EXTRAS}]
      fi
    - echo "[*] The following packages, with their respective version, will be
      checked:"
    - pylic list
    - pylic check
