jenkins获取其他服务器文件,Jenkinsfile-获取构建之间的所有更改

小编典典

我找到了一种似乎对我们有用的解决方案。它围绕着获取currentBuild提交哈希值,然后是lastSuccessfulBuild提交哈希值。首先,我们编写了一个实用程序方法来获取给定Jenkins构建对象的提交哈希:

def commitHashForBuild(build) {

def scmAction = build?.actions.find { action -> action instanceof jenkins.scm.api.SCMRevisionAction }

return scmAction?.revision?.hash

}

然后使用它来获取lastSuccessfulBuild的哈希值:

def getLastSuccessfulCommit() {

def lastSuccessfulHash = null

def lastSuccessfulBuild = currentBuild.rawBuild.getPreviousSuccessfulBuild()

if ( lastSuccessfulBuild ) {

lastSuccessfulHash = commitHashForBuild(lastSuccessfulBuild)

}

return lastSuccessfulHash

}

最后将两者结合在一个sh函数中以获取提交列表

def lastSuccessfulCommit = getLastSuccessfulCommit()

def currentCommit = commitHashForBuild(currentBuild.rawBuild)

if (lastSuccessfulCommit) {

commits = sh(

script: "git rev-list $currentCommit \"^$lastSuccessfulCommit\"",

returnStdout: true

).split('\n')

println "Commits are: $commits"

}

然后,您可以根据需要使用commits数组在Git中查询各种内容。例如,您可以使用此数据获取自上次成功构建以来所有已更改文件的列表。

我已将其放入一个完整的示例Jenkinsfile

Gist中,以显示它如何在上下文中融合在一起。

可能的改进是使用Java / Groovy本机Git库,而不是sh逐步进行。

2020-07-25

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值