我正在尝试对公司进行一些积极的改变,其中之一是实现持续集成。我们进行移动开发(iOS / Android),因此我需要一个同时支持两种类型项目的配置项。如您所知,我对CI的了解不多,但我在Google上进行了一些搜索,我认为Jenkins和Hudson是最受欢迎的两个。
我有两个部分的问题。
- 您对詹金斯有何想法?
- CI是否有办法检查项目是否符合
编码标准(例如松耦合等)?
我正在尝试对公司进行一些积极的改变,其中之一是实现持续集成。我们进行移动开发(iOS / Android),因此我需要一个同时支持两种类型项目的配置项。如您所知,我对CI的了解不多,但我在Google上进行了一些搜索,我认为Jenkins和Hudson是最受欢迎的两个。
我有两个部分的问题。
Answers:
首先,您可能希望将TeamCity视为服务器的另一种选择。
在我看来(尽管我在Jenkins上的经验比在TeamCity上要少一些)都是出色且功能强大的工具-在使用这两种工具的环境中,我会感到高兴。
好吧,要解决问题的实质,即
CI是否有办法检查项目是否符合编码标准(例如松耦合等)?
在最基本的层次上,CI服务器所做的全部工作是运行脚本,然后解释并显示运行该脚本的结果-因此,如果您可以对其进行脚本化,则您的CI服务器可能可以运行它,并且可以适当地格式化输出,然后CI服务器可能可以解释并报告结果。
当然主要的构建服务器已经能够说话/用了很多流行的工具集成的-所以真正的问题是您使用的检查您的编码标准有什么工具和做的是与您所选择CI服务器的整合。
是的,CI服务器在自动化方面给游戏带来了更多好处,而不仅仅是盲目地运行脚本-但归根结底,这就是它的作用。
需要明确的是-我知道构建服务器不仅可以运行脚本,还可以自动化处理过程(尤其是与(D)VCS的集成),从而增加了价值-但回答“我需要什么生成服务器”问题的答案是“服务器和脚本”,其他一切都从那里流出来。
我对TeamCity的建议表示赞同-这是一个很棒的产品。我无法与android对话,因为我在那里没有空位,但是我成功地在CI中运行了iOS项目,这要感谢两篇文章(1 2)。
最棘手的部分实际上与使Mac运行具有正确的钥匙串的自动化构建有关,因此您可以创建一个签名的应用程序,然后将其部署到iDevice而不是仅用于仿真器的选项。
在使用我们开发iOS应用程序的Jenkins之前,我已经设置了公司的构建服务器和脚本。就像许多人所说的那样,CI服务器非常简单,我喜欢Jenkins,因为它是免费/开源的,并且具有许多插件,例如发布覆盖率报告或github集成。