【发布时间】:2016-09-13 15:17:23
【问题描述】:
我有一个 Jenkins 服务器,我想从中下载构建工件。问题在于作业的设置方式,构建工件包括作业编号,例如NightlyBuild-346.tar.bz2。我们喜欢工作编号,因为它们可以很容易地了解特定构建的年龄。
这变得有问题,因为我不知道我正在下载的文件的确切名称——我只知道我想要最后一次成功的构建。我可以这样做:
- name: download build from CI
get_url:
url: "https://ci.contoso.com/job/NightlyBuild/lastSuccessfulBuild/artifact/NightlyBuild-345.tar.bz2"
dest: /tmp/NightlyBuild-345.tar.bz2
...但这将在 Jenkins 完成下一个夜间构建后中断,因为工件将变为 NightlyBuild-346.tar.bz2。我想我有几个选择:
- 尝试在
get_url模块中使用通配符(不太确定) - 从作业中下载所有工件(有几个)作为单个
archive.zip并使用命令行和正则表达式魔术找到我关心的实际构建工件。 (可能导致无法维护的热混乱) - 使用 REST API 获取最后一个成功作业的作业编号并形成完整的 URL。 (不确定 Ansible 是否允许我像这样即时设置变量)。
这些是我的选择吗?有没有更好的方法来解决这个问题?我想最终从 Jenkins 发布到 Artifactory 存储库,如果这是正确的做法,我也希望能在这个方向上提供一些指示。
【问题讨论】:
标签: jenkins ansible artifactory devops