devpi-jenkins:devpi-server的Jenkins构建触发器
项目描述
devpi-jenkins:devpi-server的Jenkins构建触发器
用于与devpi-server >= 2.2.0配合使用。
安装
devpi-jenkins需要与devpi-server一起安装。
您可以使用以下方式安装它
pip install devpi-jenkins
对于devpi-server,无需配置,因为它将通过使用setuptools入口点机制调用钩子自动发现插件。
以下为配置详情。
配置
devpi-jenkins可以使用tox触发Jenkins测试上传的包。这需要在两个方面进行配置
devpi:配置索引,在上传时向Jenkins发送POST请求
Jenkins:添加一个或多个可以通过devpi-jenkins触发的作业。
配置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}将被替换为上传包的名称。然而,如果您希望有一个通用的Jenkins作业,执行所有上传的测试,则不需要指定此类替换。
# one generic job for all uploaded packages devpi index /testuser/dev uploadtrigger_jenkins=http://localhost:8080/job/multijob/build
这需要在Jenkins侧配置一个单独的multijob,而之前的配置需要为可能上传的每个包名称配置一个作业。
请注意,如果成功将构建作业提交到Jenkins,则上传包将独立成功。
配置Jenkins作业
在Jenkins侧,您需要配置一个或多个可以由devpi-jenkins触发的作业。每个作业的配置方式相同
转到主Jenkins屏幕
点击“新建作业”,输入一个名称(如果您想配置一个通用作业,则输入“multijob”),然后选择“freey风格软件项目”,点击“确定”。
启用“此构建是参数化的”并添加一个“文件参数”,设置文件位置为jobscript.py。
添加一个构建步骤“执行Python脚本”(您需要在Jenkins中安装并启用Python插件)并输入execfile("jobscript.py")。
为新构建作业点击“保存”。
现在您可以devpi上传一个包到索引,并在上传成功返回后看到Jenkins启动。
幕后
一旦您从devpi触发了作业,您可以在Jenkins工作区中检查jobscript.py,以查看注入了什么。注入的脚本大致遵循以下步骤
通过devpi根/pypi索引检索稳定的虚拟环境发布版本(即使用其缓存功能)
解压缩虚拟环境tar包并运行包含的“virtualenv.py”脚本以创建一个_devpi环境
在该环境中安装/升级devpi-client
devpi use我们从其中触发的索引
devpi test PKG,其中PKG是我们上传的包名称。
变更日志
3.0.1 - 2024-08-04
用importlib.resources替换pkg_resources。[fschulze]
用内置的Python功能替换未维护的py库。[fschulze]
停止支持Python <= 3.7。[fschulze]
添加对Python 3.12的支持。
3.0.0 - 2023-12-19
停止支持Python <= 3.6。[fschulze]
针对新pluggy版本的修复。[fschulze]
从devpibootstrap.py.template中删除未使用的导入。[fschulze]
2.0.0 - 2016-04-25
停止支持Python 2.6 [fschulze]
针对devpi-server 3.0.0的修复,旧版本不再受支持 [fschulze]
1.0.0 - 2015-05-13
在devpi test命令的testspe中包含版本 [fschulze]
从devpi-server中分离成插件 [fschulze (Florian Schulze)]
devpi-jenkins-3.0.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | acf097449c4b9a89f207c07833db91945c922c99977cd891e59775abcffa39cd |
|
MD5 | d4328a773a8bb7fd8e29d55c0301c1d6 |
|
BLAKE2b-256 | f9e4a8f97ab973b366835618f96cdf27cda5ac75e68883a33bca6412eb7e8686 |
devpi_jenkins-3.0.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | beb95bbfe60121a43fcbe9785b3c7cf004cbca2bd5ed7c5979834303cc64eb91 |
|
MD5 | 8eeeb68cf9413987c20dbe1b945b0f80 |
|
BLAKE2b-256 | 1012b9b32ff287e23ac8fc26ff49c20fae1bdbcc93a94ddc23fc4f9372fafb1d |