如何让Jenkins在一个分支中构建所有提交?

时间:2017-05-12 12:07:19

标签: git jenkins sonarqube

我想让一个Jenkins作业按照时间顺序遍历分支上的所有提交,并给出一个启动提交。我想在分支机构的所有提交上运行Sonar。声纳是通过詹金斯触发的。 Jenkins有没有选择实现这个目标?

在我的工作区中单独检出提交后,不能从本地计算机调用声纳。

1 个答案:

答案 0 :(得分:4)

您可以创建使用分支/提交哈希构建的构建作为构建参数的构建。然后创建另一个运行git log --pretty=oneline head...whaterver_commit | awk '{print $1}'的构建作业,并使用提交哈希来触发第一个参数化作业。

<强>编辑:

这是一个应该有效的管道脚本示例:

node('your-jenkins-slave') {
  checkout scm
  def result = sh (script: "git log --pretty=oneline | awk '{print \$1}'", returnStdout: true)
  def hashes = result.split('\n')
  for (int i = 0; i < hashes.size(); i++) {
    def commitHash = hashes[i]
    build job: 'your_job_id', parameters: [[$class: 'StringParameterValue', name: 'BRANCH', value:commitHash]]
  }
}