簡體   English   中英

如何將文件傳遞給 Jenkins 中的下游作業

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM