Devpi-Jenkins:Jenkins build触发器for devpi-server
devpi-jenkins的Python项目详细描述
devpi jenkins:jenkins为devpi服务器构建触发器
用于devpi服务器>;=2.2.0。
安装
devpi jenkins需要与devpi server一起安装。
您可以使用以下命令安装它:
pip install devpi-jenkins
对于devpi服务器,不需要配置,因为它将使用setuptools入口点机制通过调用钩子自动发现插件。
有关下面配置的详细信息。
配置
devpi jenkins可以触发jenkins使用tox来测试上传的包。 这需要在两侧进行配置:
- devpi:配置索引以在上载时向jenkins发送post请求
- 詹金斯:添加一个或多个由devpi詹金斯触发的作业。
配置devpi索引以触发jenkins
下面是一个示例命令,使用 /testuser/dev 索引 以及位于http://localhost:8080的jenkins服务器
# needs one Jenkins job for each name of uploaded packages devpi index /testuser/dev uploadtrigger_jenkins=http://localhost:8080/job/{pkgname}/build
任何上传到 /testuser/dev 的包现在都将触发 对指定url的post请求。 {pkgname} 和 {pkgversion} 字符串将替换为 已上载包。你不需要指定这样的替换, 但是,如果你想找一份普通的詹金斯工作 对所有上载执行所有测试:
# one generic job for all uploaded packages devpi index /testuser/dev uploadtrigger_jenkins=http://localhost:8080/job/multijob/build
这需要在jenkins端执行一个 多任务 配置可能需要为每个包名指定一个作业 上传,
请注意,如果生成作业可以 成功提交给詹金斯。
配置Jenkins作业
在jenkins方面,您需要配置一个或多个可以 被德普·詹金斯触发。每个作业的配置方式相同:
- 转到Jenkins主屏幕
- 点击"New job"(新工单)并输入一个名称(如果要配置"Multijob"(多工单))。 一个普通的工作),然后选择"自由风格软件项目",点击"确定"。
- 启用"this build is parametrized"并添加"file parameter", 将文件位置设置为jobscript.py
- 添加一个buildstep"execute python脚本"(您需要 在jenkins中安装并启用插件)并输入 执行文件("jobscript.py")
- 点击"保存"以获取新的生成作业。
现在您可以将包上传到索引中,并看到jenkins正在启动 上传成功返回后。
幕后
从devpi触发作业后,可以签出jobscript.py 在詹金斯的工作间里看注射了什么。注入的 脚本大致遵循以下步骤:
- 通过devpi根/pypi检索稳定的virtualenv版本 索引(即使用其缓存功能)
- 打开virtualenv tar球并运行包含的"virtualenv.py" 创建环境的脚本
- 安装/升级devpi客户端平移>到该环境中
- devpi使用从中触发的索引
- devpi test pkg 其中pkg是我们上载的包名称。
正在上载Sphinx文档
如果您有基于狮身人面像的文档,您可以 使用以下命令将呈现的html文档上载到devpi服务器 命令:
devpi upload --with-docs
这将通过配置和运行来构建和上载sphinx文档 此命令:
setup.py build_sphinx -E --build-dir $BUILD_DIR \ upload_docs --upload-dir $BUILD_DIR/html
如果配置了distutils以使用devpi索引,则可以上载 只需执行以下操作即可获得该索引的文档:
python setup.py upload_docs
上传后,文档将从索引概述页链接到。 文档URL的格式如下:
http://$DEVPI_URL/$USER/$INDEX/$PACKAGE/$VERSION/+doc/index.html
devpi upload with docs命令可能会失败,错误如下:
error: invalid command 'build_sphinx'
这可能意味着您使用的是旧版本的setuptools,而不是 支持devpi使用的 build\u sphinx 命令,因此需要更新 设置工具:
pip install -U setuptools
如果 devpi upload --with docs命令仍然失败,并出现相同的错误 消息,也许你忘了安装狮身人面像?在这种情况下:
pip install devpi-jenkins0
批量上载发布文件
如果您有包含现有程序包文件的目录:
pip install devpi-jenkins1
将递归收集所有存档文件,注册 并将它们上传到我们的本地 testuser/dev pypi索引。
使用普通的setup.py进行上传
以便 setup.py 注册发布并上载 释放需要在中配置索引服务器的文件 $home/.pypirc 文件:
pip install devpi-jenkins2
现在让我们进入一个基于 setup.py 的项目并发布:
pip install devpi-jenkins3
这将把您的 sdist 包上传到 testuser/dev 索引, 在 .pypirc 文件中配置。
如果您现在使用testuser/dev进行如下安装:
pip install devpi-jenkins4
您将安装包,包括任何pypi依赖项 它可能需要,因为 testuser/dev 索引继承了所有 来自pypi镜像的包 根/pypi 索引。
< div > 注如果使用多个索引,则通常 方便使用devpi upload uploading uploading one or more packages" rel="nofollow">devpi uploads