使Tox / pip识别与Jenkins一起部署的诗歌包的私人人工制品

时间:2019-11-05 13:29:26

标签: python jenkins pip python-poetry

我有一个python软件包,我想使用Jenkins和tox进行测试和构建。 但是,这取决于我们私有工件中的程序包。尽管诗歌正确地接受了它,但是当毒气发作时(并在诗歌上使用pip来安装依赖项),它找不到包。

我的诗歌锁定文件具有

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

我的Jenkinsfile设置了POETRY_HTTP_BASIC_PYPI_USERNAMEPOETRY_HTTP_BASIC_PYPI_PASSWORD,这使诗歌的安装无需锁文件中具有我的凭据即可。

经过一些搜索之后,似乎我需要在pyproject.toml中扩展legacy_tox_ini。现在看起来像这样:

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:problempackage添加到deps,但这也无济于事。

在这种设置下,如何让pip识别私人物品?

1 个答案:

答案 0 :(得分:0)

最后,整个索引服务器和dep都是不必要的,而且很简单

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

Jenkins文件中的

已足够。当然,这需要您的Docker映像具有正确的pip.conf。