2016-08-17 46 views
0

我有一個Jenkins groovy模板腳本,它循環訪問名爲services的輔助模型列表。每個輔助模型都有一個名爲reportableJob的作業作爲屬性。這些「可報告的工作」都有一個屬性,稱爲branch。我怎樣才能訪問這個屬性?從另一個工作中訪問Jenkins作業屬性

這裏是我的總體思路:

for (i=0; i< services.size(); i++) { 
    def job = services[i].reportableJob 
    def branch = job.branch 
    echo "${branch}" 
} 

這將導致以下錯誤:

groovy.lang.MissingPropertyException: No such property: branch for class: org.jenkinsci.plugins.workflow.job.WorkflowJob 
+1

是否使用[標籤:jenkins-pipeline] plugin或[tag:jenkins-job-dsl]插件 - 或者真的都是這樣嗎? – StephenKing

+0

只需使用管道插件。 –

+0

我是說..是的['WorkflowJob'](https://github.com/jenkinsci/workflow-job-plugin/blob/6e3d7f4c1bea84eadcf0e14d6b2044116da88a48/src/main/java/org/jenkinsci/plugins/workflow/job/WorkflowJob .java)沒有這樣的屬性。 [getSCMs()']怎麼樣?(https://github.com/jenkinsci/workflow-job-plugin/blob/6e3d7f4c1bea84eadcf0e14d6b2044116da88a48/src/main/java/org/jenkinsci/plugins/workflow/job/WorkflowJob.java# L523)? – StephenKing

回答

0

想通弄明白了,好知道:

for (i=0; i< services.size(); i++) { 
    def job = services[i].reportableJob 
    def instance = com.cloudbees.hudson.plugins.modeling.impl.entity.EntityInstance.from(job) 
    echo "Branch: ${instance.getValue("branch")}" 
} 
相關問題