Hacer que tox / pip reconozca un artefacto privado para un paquete de poesía implementado con Jenkins

0

Tengo un paquete de Python que quiero probar y construir usando Jenkins y tox. Sin embargo, depende de un paquete en nuestro artefacto privado. Aunque la poesía lo capta correctamente, en el momento en que tox se activa (y usa pip sobre poesía para instalar dependencias), no puede encontrar el paquete.

Mi archivo de bloqueo de poesía tiene

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

Mi archivo Jenkins se configura POETRY_HTTP_BASIC_PYPI_USERNAMEy POETRY_HTTP_BASIC_PYPI_PASSWORDpermite que la poesía se instale sin que la URL del archivo de bloqueo tenga mis credenciales.

Después de algunas búsquedas, parecía que necesitaba extender legacy_tox_ini en pyproject.toml. Esto ahora se ve así:

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

También probé agregando: ourartifactory: problempackage a los departamentos aquí, pero tampoco ayuda.

¿Cómo puedo hacer que pip reconozca el artefacto privado en esta configuración?

0

Al final, todo el servidor de índices y los departamentos fueron innecesarios, y un simple

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

en el Jenkinsfile fue suficiente. Por supuesto, esto requiere que la imagen de la ventana acoplable tenga el pip.conf correcto.