--- # Check the package repo on how to configure this job # https://github.com/sandrochuber/pylic variables: PYVERSION: "latest" PYLIC_SKIP_EXTRAS: "" # Comma-separated list of extras that are to be skipped python:pylic: stage: test image: registry.gitlab.com/just-ci/images/python:$PYVERSION script: # work in venv - python3 -m venv .venv - source .venv/bin/activate - pip3 install importlib_metadata - echo "will run test on PYTHON_PACKAGE=${PYTHON_PACKAGE}" # 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 ${PYTHON_PACKAGE} without extras." pip3 install . else echo "[*] Installing package" ${PYTHON_PACKAGE} "with extras:" ${EXTRAS} pip3 install .[${EXTRAS}] fi - echo "[*] The following packages, with their respective version, will be checked:" - pylic list - pylic check