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>


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM