如果分叉代码与原始仓库不是最新的,我需要使构建失败。
当PR完成时,Jenkins需要首先检查代码是否来自fork(要构建的)在构建之前是否是最新的。这可以从詹金斯那边检查吗?
如上图所示。 GitHub告诉我们分支需要更新,但我的构建是在检查期间完成的,因此它浪费了构建,因为毕竟开发人员必须更新代码并重新构建。有没有办法在Github方面避免这个问题或在Jenkins中添加其他代码?
我使用GitHub Organization,在MultiBranch Pipeline中面临同样的问题。
使用简单的checkout scm
在PR期间获取分叉代码并使用maven构建。
有什么建议吗?
答案 0 :(得分:1)
在Jenkins方面,您可以添加一个步骤:
original/master
HEAD和git merge-base master yourBranch
:如果它们不同,则表示自创建主题分支以来,原始/母版已经发展。在" Discussion on fork-point mode"
中查看更多内容那是:
sh 'git remote add original /url/of/the/original/repo'
sh 'git fetch original'
sh 'if [[ "$(git rev-parse original/master)" != "$(git merge-base master yourBranch)]]; then
// fail the job;
fi
}'