我可以使用Jenkins中的变量来获取为该作业配置的SCM吗?
即Git,Subversion等......
我希望在构建时能够像使用msbuild一样获取此信息
我现在正在使用SVN_URL和GIT_URL。想知道是否有更好的方法。
答案 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_URL
和GIT_URL
更好?
这是一般的想法。第二种方法让你定义自己的价值),但是对于一般问题“想知道是否有更好的方法。”:不,不是真的(我知道)。