jenkins读取另外一个pipeline的archiveArtifacts
后来我找到了一个插件实现了以下功能: Copy Artifact
下面这种方法不建议使用了
使用jenkins的过程中遇到了一个需求:
我的其中一个流水线构建出了 docker 镜像 , 在另外一个流水线中不想再反复构建一次了, 可能是因为这次构建是多余的, 也可能为了保证版本一致。
先说一下 pipeline 中的写法:
stage('test') {
steps {
sh 'echo aaa > aaa.txt'
archiveArtifacts artifacts: 'aaa.txt', followSymlinks: false
// 这里也可以不使用 script
script {
println(Jenkins.instance.getItem("self-pipeline").lastSuccessfulBuild.artifacts[0].file.text)
}
}
}
pipeline中运行groovy中会遇到权限问题, 建议安装插件 Permissive Script Security, 并且添加jenkins启动参数-Dpermissive-script-security.enabled=true
相关资料搜索: jenkins in-process script approval
执行groovy代码后, Manage Jenkins -> in-process script approval 中会有一些规则等待允许, 点击approval即可
另外: 上面代码的文档地址: https://javadoc.jenkins-ci.org/index-core.html
不过这么调试是非常麻烦的, 建议新建一个maven项目, 再pom中引入以下依赖, 新建一个 groovy 脚本, 可以使用代码提示
<dependency>
<groupId>org.jenkins-ci.main</groupId>
<artifactId>jenkins-core</artifactId>
<version>2.85</version>
</dependency>