缺少SCM环境变量

时间:2015-05-12 09:01:28

标签: jenkins-workflow

通常,在使用像 Git插件这样的SCM时,可以使用一堆环境变量(例如see these

Git Step Generic SCM 似乎都没有。

有没有办法让这些变量进入groovy env.*以便可以使用它们?

这样的东西会很有用:

def commitMessage = sh 'git log --max-count=1 --oneline --no-merges | cut -b9-'

我可以考虑将结果写入文件并通过readFile() mehtod读取它们 - 但有没有更简单的方法来实现这一目标?

2 个答案:

答案 0 :(得分:3)

对于记录:我有以下代码来获取分支名称:

stage 'preparation'
node {
 // checkout branch
  git branch: 'origin/master', url: 'git@example.net:project.git'

  // write current branch-name to file
  sh 'git branch -a --contains `git rev-parse HEAD` | grep origin | sed \'s!\\s*remotes/origin/\\(.*\\)!\\1!\' > git-branch.txt'

  // read data from file into environment-variable
  env.gitBranch = readFile('git-branch.txt').trim()

  // let people know what's up
  echo "testing branch ${env.gitBranch}"
}

流程脚本的其余部分由几个参数化作业组成,这些作业将env.gitBranch作为参数传递(如果需要,还可以)。

确保允许工作流的并发构建捕获每个更新的分支。

答案 1 :(得分:2)

JENKINS-24141;这些变量尚未在Workflow中提供。

与此同时,您走在正确的轨道上:运行git命令记录您需要的任何信息,并使用readFile加载它(另请参阅JENKINS-26133)。< / p>