繁体   English   中英

使 tox/pip 识别诗歌 package 与 Jenkins 一起部署的私有工件

[英]Make tox/pip recognize a private artifactory for a poetry package deployed with Jenkins

我有一个 python package 我想使用 Jenkins 和 tox 进行测试和构建。 但是,它取决于我们私人工件中的 package。 尽管诗歌正确地理解了它,但当 tox 启动时(并使用 pip 而不是诗歌来安装依赖项),它找不到 package。

我的诗歌锁定文件有

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

我的 Jenkinsfile 设置了POETRY_HTTP_BASIC_PYPI_USERNAMEPOETRY_HTTP_BASIC_PYPI_PASSWORD允许诗歌在没有我的凭据的锁定文件中的 url 的情况下安装。

经过一番搜索,我似乎需要在 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 在此设置中识别私有工件?

最后整个 indexserver 和 deps 是不必要的,一个简单的

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

在 Jenkinsfile 中就足够了。 当然,这需要您的 docker 映像具有正确的 pip.conf。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM