我想让一个Jenkins作业按照时间顺序遍历分支上的所有提交,并给出一个启动提交。我想在分支机构的所有提交上运行Sonar。声纳是通过詹金斯触发的。 Jenkins有没有选择实现这个目标?
在我的工作区中单独检出提交后,不能从本地计算机调用声纳。
答案 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]]
}
}