Jenkins工件URL允许抽象"最后成功的构建",而不是
http://myjenkins.local/job/MyJob/38/artifact/build/MyJob-v1.0.1.zip
Run Code Online (Sandbox Code Playgroud)
我们可以说
http://myjenkins.local/job/MyJob/lastSuccessfulBuild/artifact/build/MyJob-v1.0.1.zip
Run Code Online (Sandbox Code Playgroud)
是否有可能进一步抽象?我的工件在其文件名中有版本号,可以从构建更改为构建.理想情况下,我想要一个类似于"别名"的URL,如下所示:
http://myjenkins.local/job/MyJob/lastSuccessfulBuild/artifact/build/MyJob-latest.zip
Run Code Online (Sandbox Code Playgroud)
MyJob-latest.zip然后会解决MyJob-v1.0.1.zip.
如果詹金斯本身不能这样做,也许有一个插件?
Sla*_*lav 13
从来没有见过任何这样的插件,但Jenkins已经内置了类似的功能.
您可以/*zip*/filename.zip在工件路径中使用,您filename可以选择任何内容.它将获取所有找到的工件,并将其下载到一个zip文件中(如果你的工件已经是一个zip文件,你最终可能会在zip文件中找到一个zip)
在您的情况下,它将是:
http://myjenkins.local/job/MyJob/lastSuccessfulBuild/artifact/build/*zip*/MyJob-latest.zip
这将获得/artifact/build/带有名称的压缩存档中返回的内容MyJob-latest.zip.请注意,如果该目录中只有该zip文件,则还会返回其他文件.
您可以在路径中使用通配符.单个*用于常规通配符,**用于跳过任意数量的前面目录.
例如,要获取任何以任何工件目录开头MyJob,结尾.zip和查找的文件,您可以使用:
/lastSuccessfulBuild/artifact/**/MyJob*.zip/*zip*/MyJob-latest.zip
编辑:
没有某种形式的容器(在这种情况下是拉链),你不能做这样的事情.使用容器,您告诉系统:
但你不能告诉系统:
如果您需要一些脚本自动化,您可以解压缩第一级zip并保留所需的压缩工件.
如果您需要将此链接提供给其他人,则需要一个替代解决方案.
备选方案1:
构建完成后,执行构建后步骤,该步骤将获取您的工件,并将其重命名为MyJob-latest.zip,但您将丢失文件名中的版本.您也可以选择复制而不是重命名,但最终会有两倍的空间用于存储这些工件.
备选方案2(推荐):
作为构建后操作,将工件上载到中央存储库.它可以是Artifactory,甚至是普通的SVN.上传时,它将被重命名MyJob-latest.zip,前一个将被覆盖.这样,您就拥有了一个始终具有最新工件的静态链接lastSuccessfulBuild
| 归档时间: |
|
| 查看次数: |
10493 次 |
| 最近记录: |