如何在Jenkins管道中获取对SCM对象的引用?

时间:2016-08-17 14:27:53

标签: jenkins jenkins-pipeline

我无法在Jenkins管道中获取对SCM对象的引用。在我目前的情况下,有必要检索此引用以在JIRA插件中使用,如shown here

我创建了一个简单的测试用例

node("master"){
    def gitScm  = git url: 'https://github.com/jenkinsci/jira-plugin.git', branch: 'master'
    echo "my git scm is "+gitScm 
    step([$class: 'hudson.plugins.jira.JiraIssueUpdater',
        issueSelector: [$class: 'hudson.plugins.jira.selector.DefaultIssueSelector'],
        scm: gitScm])
    gitScm = null
}

我总是得到一个null gitScm个对象,然后我的JIRA更新失败了:

  

我的git scm为null

即使git repo成功结账。

1 个答案:

答案 0 :(得分:1)

如果这个问题仍然存在,我可以考虑两个选择:

  1. 如果您处于多分支管道环境中,您只需使用' scm'变量,由Jenkins注入构建
  2. 如果没有,您可以使用以下方式获取参考(对Git):
    
    def scm = [
        $class: 'GitSCM', 
        userRemoteConfigs: [[url: , refSpec: ]],
        branches: [[name: ]]
    ]
    
  3. 根据需要替换SCM的变量和类型。这允许后续语句,如checkout scm