Заставьте tox / pip распознать частную артефакт для поэтического пакета, развернутого с Дженкинсом - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть пакет python, который я хочу протестировать и собрать с использованием Jenkins и tox. Тем не менее, это зависит от пакета в нашей частной артефакте. Несмотря на то, что поэзия подхватывает его правильно, в тот момент, когда включается токсик (и использует pip over поэзию для установки зависимостей), он не может найти пакет.

Мой файл блокировки поэзии имеет

reference = "snakepit"
type = "legacy"
url = "https://our private artifactory

Мой Jenkinsfile настраивает POETRY_HTTP_BASIC_PYPI_USERNAME и POETRY_HTTP_BASIC_PYPI_PASSWORD, что позволяет поэзии устанавливать без URL-адреса в файле блокировки, имеющего мои учетные данные.

После некоторого поиска мне показалось, что мне нужно расширить legacy_tox_ini в pyproject. toml. Теперь это выглядит следующим образом:

legacy_tox_ini = """
[tox]
isolated_build = true
envlist = py36,py37,py38

indexserver =
    default = https://pypi.python.org/simple
    ourartifactory = https://{env:POETRY_HTTP_BASIC_PYPI_USERNAME}:{env:POETRY_HTTP_BASIC_PYPI_PASSWORD}@our artifactory url


[testenv]
deps =
    pytest
    pytest-cov

setenv =
    SOME_ENV={env:SOME_ENV}

commands =
    pytest tests

Я также тестировал добавление: ourartifactory: problemmpackage к deps здесь, но это тоже не помогает.

Как заставить pip распознавать частный артефакт вэтот параметр?

1 Ответ

0 голосов
/ 08 ноября 2019

В итоге весь сервер индексирования и deps были не нужны, и достаточно простого

envVar(key: 'PIP_CONFIG_FILE', value: "/pypi-artifactory/pip.conf")

в Jenkinsfile. Конечно, это требует, чтобы у вашего образа докера был правильный файл pip.conf.

...