首页 > 解决方案 > 在 Jenkins Build 运行时提供对日志中工作区文件的访问权限

问题描述

我们希望有一个管道,它构建我们的应用程序而不是暂停,并且在构建的应用程序经过手动测试后恢复并交付测试的应用程序。

所以我想出了使用 Input 来暂停管道的想法,如下所示:

...
stage ("Build"){
    // build application here and archive it as artefact
}
timeout(time:5, unit:'DAYS') {
    input message:'Approve deployment?'
}
stage ("Deliver"){
   // deliver the built application
}

测试人员有 5 天的时间来测试应用程序,然后恢复管道并交付。

我的问题是,虽然构建仍在运行,但测试人员还无法访问状态页面上的工件。

那么有没有办法在日志输出中提供任何类型的下载链接,指向我在构建阶段存档的应用程序文件?或者有没有其他好的方法可以在一个管道作业中实现这个 build->pause->test->resume->deliver 工作流?

流水线中的测试自动化不是一种选择,因为应用程序需要在某些硬件上手动刷新。

标签: jenkinsjenkins-pipelinepauseartifact

解决方案


这将使您进入工件列表(artifact如果您希望链接指向特定文件,您可以在之后添加更多):

...
timeout(time:5, unit:'DAYS') {
    echo "Archive available for download: ${env.BUILD_URL}artifact"
    input message:'Approve deployment?'
}

这需要JENKINS_URL在系统配置中设置 的值:在您的 Jenkins 主页中,单击Manage Jenkins --> Configure System并在Jenkins Location下查找Jenkins URL

如果您没有对 Jenkins 的管理员访问权限,并且JENKINS_URL没有设置,您可以使用类似

https://known-jenkins-url/job/${JOB_NAME}/${BUILD_NUMBER}/artifact

推荐阅读