0

通常,当使用像Git 插件这样的 SCM 时,有一堆环境变量可以使用(例如,参见这些

但是Git StepGeneric SCM似乎都没有这样做。

有没有办法将这些变量放入 groovyenv.*以便可以使用它们?

像这样的东西会很有用:

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

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

4

2 回答 2

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作为参数传递(以及其他参数,如果需要)。

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

于 2015-10-17T21:29:30.687 回答
2

詹金斯-24141;Workflow 尚不提供这些变量。

与此同时,你走在了正确的轨道上:运行一个git命令来记录你需要的任何信息,并使用readFile它来加载它(另见JENKINS-26133)。

于 2015-05-12T16:20:15.930 回答