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"(多工单))。 一个普通的工作),然后选择"自由风格软件项目",点击"确定"。
jenkins1.png
  • 启用"this build is parametrized"并添加"file parameter", 将文件位置设置为jobscript.py
jenkins2.png
  • 添加一个buildstep"execute python脚本"(您需要 在jenkins中安装并启用插件)并输入 执行文件("jobscript.py")
jenkins3.png
  • 点击"保存"以获取新的生成作业。

现在您可以将包上传到索引中,并看到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-jenkins
0

批量上载发布文件

如果您有包含现有程序包文件的目录:

pip install devpi-jenkins
1

将递归收集所有存档文件,注册 并将它们上传到我们的本地 testuser/dev pypi索引。

使用普通的setup.py进行上传

以便 setup.py 注册发布并上载 释放需要在中配置索引服务器的文件 $home/.pypirc 文件:

pip install devpi-jenkins
2

现在让我们进入一个基于 setup.py 的项目并发布:

pip install devpi-jenkins
3

这将把您的 sdist 包上传到 testuser/dev 索引, 在 .pypirc 文件中配置。

如果您现在使用testuser/dev进行如下安装:

pip install devpi-jenkins
4

您将安装包,包括任何pypi依赖项 它可能需要,因为 testuser/dev 索引继承了所有 来自pypi镜像的包 根/pypi 索引。

< div > 注

如果使用多个索引,则通常 方便使用devpi upload uploading uploading one or more packages" rel="nofollow">devpi uploads

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用数据库中的值填充p:selectOneMenu   Java/Junit中的异步单元测试一个非常简单但不成功的例子   在Debian上使用Java连接到MySQL   java测试时如何恢复表中的一条记录/行?   java如何将重点放在jbutton上而不是放在另一个jbutton上?   java我可以从HPROF文件中获取JVM标志吗?   java如何使用自定义比较器在2个集合上保留   java让stringTokenizer将一行文本拆分为预定义变量的最佳方法是什么   Kotlin Android/Java字符串日期时间格式,API21   exchange server EWS Java Api自动发现不工作   netbeans是Java新手,似乎无法修复错误;应为类、接口或枚举。274062   我正在尝试将一些scala代码转换为Java8,以创建新的Lambda和并行集合   流中的分配api(java)   用于串行通信的java Python字节数组