我想在 Jenkins 腳本控制臺中運行一個腳本來檢索在 Jenkins 中配置的所有作業/管道的scriptPath引數。我找到了獲取管道名稱的方法,但我想要每個管道的scriptPath引數。
有什么線索嗎?
uj5u.com熱心網友回復:
所有管道作業都是該函式的實體,org.jenkinsci.plugins.workflow.job.WorkflowJob并且可以使用該Jenkins.instance.getAllItems函式找到。
一旦找到,每個作業都包含一個可以通過該方法FlowDefinition訪問的類的屬性。getDefinition()管道有兩種型別的定義:
CpsFlowDefinition- 對于定義行內腳本(不是 SCM)的管道,可以通過該getScript()方法訪問該腳本。CpsScmFlowDefinition- 對于定義 SCM 腳本的管道,可以通過該getScriptPath()方法訪問該腳本。
因此,要實作您想要的,您可以查看相關作業并提取相關屬性:
def pipelineJobs =Jenkins.instance.getAllItems(org.jenkinsci.plugins.workflow.job.WorkflowJob)
def scmJobs = pipelineJobs.findAll { it.definition =~ 'CpsScmFlowDefinition'}
scmJobs.each {
println "Pipeline Name: ${it.name}"
println "SCM Script Path: ${it.definition.scriptPath}"
}
如果您的所有作業都是 SCM 管道,您可以使用以下單線:
Jenkins.instance.getAllItems(org.jenkinsci.plugins.workflow.job.WorkflowJob)*.definition.scriptPath
對于單個特定作業,您可以使用:
Jenkins.instance.getItemByFullName("<PIPELINE_NAME>").definition.scriptPath // or just script for inline definition
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/416437.html
標籤:
