[英]How to Pass Files to downstream Job in Jenkins
我正在嘗試將構建的 zip 文件傳遞給另一個運行端到端測試的作業。 它通常會使用主要作業中的構建工件,但我想將端到端測試添加為構建管道的一部分。 我嘗試在 Jenkins 中使用文件參數,但該文件從未出現過,我相信有一些突出的問題阻止它工作。 有沒有辦法可以通過 stash/file 參數將文件傳遞給下游作業。 或者我是否必須做一些事情,比如創建一個執行構建的下游作業,然后獲取工件並將其用於也運行端到端測試的主作業?
這就是我嘗試文件參數的方式
parameters {
file name:"buildFiles.zip", description: 'Zip file containing Build Files'
}
注意:我正在使用 Jenkinsfile 來完成這些工作。
更新:我最終解決問題的方法是將完成的構建推送到 proget 通用 package 存儲庫,然后讓下游工作從中拉出。
Jenkins COPY ARTIFACT PLUGIN有助於將工件從特定項目復制到您想要的項目。 給出的鏈接詳細說明了如何完成。 這個 SO thread Build selector for Copy Artifact也解釋了它是如何完成的。
此方法假定您在當前作業的工作區中有該文件。
pipeline
{
agent any
stages {
stage('Pass file type param to build job') {
steps {
script {
def propertiesFilePath = "${env.WORKSPACE}/sample.properties"
build job: 'other-project',
parameters: [[$class: "FileParameterValue", name: "propertiesFile", file: new FileParameterValue.FileItemImpl(new File(propertiesFilePath))]]
}
}
}
}
}
此處下游/子作業的名稱為“other-project”,該下游/子作業中的文件類型參數名稱為“propertiesFile”。 FileParameterValue.FileItemImpl 類型在 class FileParameterValue 中定義,並在 jenkins 內部用於處理 FileItem,還為其添加了序列化支持。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.