--- # Check the package repo on how to configure this job # https://github.com/sandrochuber/pylic include: - remote: https://jobs.just-ci.dev/33-feat-helm-jobs-2/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