Jenkins成功构建后提交代码

3
我对Jenkins还不是很熟悉,也许还没有完全理解CI主题。通过我的研究,我发现如果实施CI,就一定会有稳定的构建。但是在Jenkins中我没有找到任何相关信息,这让我有些困惑。我的理解是,我有一个代码库。Jenkins基于这个代码库,在每次提交后自动检查我的项目并进行构建。但是如果提交导致构建失败呢?这意味着我的代码库也出现了问题。现在我正在寻找解决这个问题的方法。我的基本想法是使用两个代码库。(我正在使用Subversion)

1. 代码库: 这个代码库接收开发人员的所有提交。Jenkins在此基础上构建项目。

2. 代码库: 只有当构建成功时,提交才会进入这个代码库。由于我在Jenkins项目配置的后期构建步骤中没有找到与此相关的内容,所以我不确定如何完成这部分操作。

你有什么想法可以帮助我实现这个配置吗?
1个回答

2
Jenkins没有内置支持“预测试提交”的功能,这似乎是你正在寻找的。请参见https://wiki.jenkins-ci.org/display/JENKINS/Designing+pre-tested+commithttps://issues.jenkins-ci.org/browse/JENKINS-1682。如果您使用git作为版本控制系统,那么似乎已经有一些努力了(请参见http://jenkins-ci.org/content/pre-tested-commits-git)。
如果您正在寻找一个开箱即用的系统,可以查看TeamCity及其"预测试提交"功能。然而,这不是一个免费产品。

这看起来很不错。我认为每个好的CI服务器都有某种类似的功能,因为这对我来说非常重要。我也尝试过还原插件,但它只能还原不稳定的构建而不是失败的构建。在Jenkins中没有类似的功能吗?我的意思是,在CI中没有意义,当你不能工作,因为你必须等待开发人员修复他搞砸的构建吗?或者我理解错了吗? - jig
CI最重要的事情是尽快发现问题,以避免集成问题。下一步是防止问题进入源代码控制,这就是你所说的。即使没有预测试提交的额外步骤,使用CI仍然有很大的优势。 - Jeff Olson
实际上,我认为SVN还原插件也会还原失败构建的更改,因为我认为失败的构建也被视为不稳定。您可以测试一下以确保它是否有效。话虽如此,最好是防止代码首先进入SVN,但我认为目前Jenkins没有支持此功能。 - Jeff Olson
反转插件只会还原不稳定的构建,这是开发人员希望它运行的方式,至少这是我的研究结果。我也尝试过,并且它会显示:“不还原,因为构建不是不稳定的”,即使构建实际上失败了。 - jig
我刚读了这篇文章,它解释了CI的手动方法。我想知道第二步“在未构建+测试提交之后告诉人们不要升级”的意思。与使用Jenkins等自动化方法相比,这是一个巨大的优势,不是吗?因为没有这样的功能,每个人都可以随时更新他们的代码,而不管什么情况。 - jig
这篇文章相当老了。我认为今天不会有太多人建议手动实现CI。即使在那个时候(2005年),与一个好的自动化CI系统相比,我也不认为这是一种很好的方法。 - Jeff Olson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接