后來我找到了一個插件實現了以下功能: 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>