[英]Return a list of values from Python Script to Jenkins Pipeline
我有一個詹金斯管道,其中包含以下3個階段(僅作說明):
第1階段:調用python腳本,該腳本應返回應為其構建新發行版的版本號列表
階段2:呼叫Jenkins-Jobs,它們並行地為階段1的每個版本號進行構建。
階段3:在完成所有已構建的作業之后,對已構建的發行版執行其他操作。
我遇到的問題是,我不知道如何處理python腳本的輸出。 在接下來的階段中,如何使用從python函數返回的列表?
我通過bat
命令調用python腳本。 我看到,可以通過returnStdout
標志重定向批處理命令的輸出,但這僅傳遞python腳本的輸出。
我可以想到的一種可能是將列表存儲在工作區中的json文件中,然后在管道中使用readJson
讀回該列表。 但是也許對此有一個更優雅的解決方案。
由於您正在使用管道DSL,因此可以使用Groovy處理對bat
的調用結果
pipeline {
agent any
steps {
step('Get Build Numbers') {
script {
def version_numbers = bat(script: 'python get_version_numbers.py', returnStdout: true)
def versions_as_array = version_numbers.split('\n')
}
}
}
}
從那里開始,就需要生成構建步驟並將其包裝在並行塊中。 為此,請看一下以下答案: 使用jenkins管道插件實現動態並行構建的想法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.