我想问一下您使用嵌入式系统构建服务器的经验。你在用什么(如果有的话),有什么好的和坏的。
我们主要针对没有操作系统的微控制器进行开发。
此刻我正在尝试使用Jenkins并且我的构建正在运行。但我对项目结构有一些问题。当我想要所有插件工作时,我需要平坦的工作结构。但我们很少有并行开发的项目,然后工作视图开始变得混乱。 我试过文件夹,但是有些插件停止了工作。
我想构建一个运行顺序的管道,但内部有并行作业。例如。提交阶段有:编译,lint检查,样式检查,单元测试。所有这些都可以并行运行,当所有这些都成功时,下一个阶段就会被执行。
此时我从构建服务器需要的是:
奴隶/代理商支持,奴隶的标签
基于ldap组的权限
我开放了任何建议,开源和商业。 我看着Bamboo的视频看起来很不错,但我还没试过。
我们有两个开发团队,正在开发不同的项目。为团队分组项目和分组权限可能会很好。一个组的成员不应该修改其他组的构建。但是“拥有”比“必须拥有”更“好”。
TeamCity的
我尝试使用TeamCity。构建构建管道比在Jenkins中更容易,只需单击添加步骤。
我发现困难的一件事是在一个配置中并行执行步骤。例如,在提交之后我想并行运行Lint,单元测试,编译以节省一些时间。我找到solution,但它使管道更难以查看和维护。
TeamCity支持解决作业分组问题的项目中的多个配置。我没有找到将项目分组的选项。
答案 0 :(得分:4)
TeamCity是来自JetBrains的免费的基于Java的CI服务器。我们已经非常成功地使用它(针对非常不同类型的项目),我会毫无保留地向您推荐它。满足您的每个要求:
所有这些都是高度可配置和可定制的。我们已经能够通过TeamCity做很多不同的复杂事情,并且它对我们来说已经非常稳固和稳定。它看起来也不错 - 服务器仪表板以易于理解的方式排列信息。
答案 1 :(得分:2)
免责声明:我为Atlassian工作,所以我有点偏颇。
在Bamboo中配置构建管道非常容易。 Bamboo根据计划→阶段→工作结构运作,从高级到低级列出。查看Bamboo Plan Structure。
Bamboo中的每个项目都包含一系列计划。计划由一个或多个阶段组成。阶段按顺序运行,由一个或多个作业组成。作业并行运行,由一个或多个任务组成(任务按顺序运行,但可以放在单独的作业中,以便它们并行运行并加快构建时间)。 Bamboo中的代理是执行构建步骤的机器或服务。整个作业将在单个代理上执行。您可以阅读有关代理here的更多信息。至于奴隶标签,使某些代理专门与某些构建或项目挂钩的能力列在新功能的短名单上。
回答你的其他观点:
基于ldap groups / project的LDAP /权限的用户授权:您可以连接到外部LDAP服务器来管理用户和权限。 Bamboo具有组功能,或者如果您的团队正在使用JIRA,您可以利用JIRA组来设置全局权限,规划权限,还可以指示哪些用户将收到有关计划构建结果的通知。全局权限控制谁有权访问构建计划和Bamboo服务器,而计划权限控制谁可以对计划及其作业执行特定操作。
分层项目(项目/配置组):Bamboo确实支持parent&儿童计划结构。有几种方法可以设置触发构建。其中之一是将触发器基于其他构建,即,计划构建由其他计划的先前成功构建触发,或者如果其他构建成功构建其他指定计划。示例:如果计划A成功构建,它将自动触发计划B和B的构建。下进行。
来自xUnit,Lint,编译器警告,机器人框架的报告:Bamboo可以运行任何可以从命令行启动的构建过程。支持包括Maven / Maven2,Ant,make,MSBuild,NAnt,Grails,devenv.exe和任何xUnix-compiant框架(JUnit,Selenium,JWebUnit,NUnit,PHPUnit等等)。