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