Jenkins中选定的源代码管理变量

时间:2017-04-18 20:45:51

标签: jenkins jenkins-plugins jenkins-pipeline

我可以使用Jenkins中的变量来获取为该作业配置的SCM吗?

即Git,Subversion等......

我希望在构建时能够像使用msbuild一样获取此信息

我现在正在使用SVN_URL和GIT_URL。想知道是否有更好的方法。

1 个答案:

答案 0 :(得分:1)

正如您所提到的,您的msbuild脚本可以访问environment variables set by Jenkins

如果您看到名为的非空环境变量:

  • GIT_COMMIT:这意味着有一个与您的工作相关联的Git存储库
  • SVN_REVISION:这意味着有一个与您的工作相关联的SVN存储库
  • CVS_BRANCH:这意味着有一个与您的工作相关联的CVS存储库

更复杂的方法:

As in this groovy script,您可以查看:

  • 如果为作业定义了任何scm

    scm = project.scm;
    
  • 如果该scm是Git或其他SCM(如Mercurial one

    if (scm instanceof hudson.plugins.git.GitSCM) {
    

从那里开始,groovy script can inject in your job a new environment variable(使用JENKINS EnvInject Plugin

import hudson.model.*
def build = Thread.currentThread().executable
def pa = new ParametersAction([
  new StringParameterValue("SCM", "Git")
])
build.addAction(pa)

OP Idothisallday询问in the comments

  

如果上面的var比使用SVN_URLGIT_URL更好?

这是一般的想法。第二种方法让你定义自己的价值),但是对于一般问题“想知道是否有更好的方法。”:不,不是真的(我知道)。