3

我想问一下您为嵌入式系统构建服务器的经验。你在用什么(如果有的话),什么是好的方面和坏的方面。

我们主要为没有操作系统的微控制器开发。

目前我正在尝试使用 Jenkins,并且我的构建正在运行。但是我对项目结构有一些问题。当我希望所有插件都能正常工作时,我需要扁平的工作结构。但是我们很少有并行开发的项目,然后工作视图开始变得混乱。我试过文件夹,但比一些插件停止工作。

我想建立一个管道,它是顺序运行的,但里面有并行作业。例如。提交阶段有:编译、lint 检查、样式检查、单元测试。所有这些都可以并行运行,并且当所有都成功时执行下一阶段。

我现在需要构建服务器的东西:

  • 构建管道支持
  • 基于LDAP的用户授权
  • 并行作业执行
  • 分层项目(项目/配置组)
  • 来自 xUnit、Lint、编译器警告、机器人框架的报告。
  • 从站/代理支持,从站的标签

  • 基于 ldap 组的权限

  • 每个组/项目的权限

我愿意接受任何建议,开源和商业。我在看 Bamboo 的视频看起来很不错,但我还没有尝试过。

我们有两个开发团队,正在开发不同的项目。将项目分组为团队和权限为组可能会很好。一个组的成员不应修改其他组的构建。但它比“必须拥有”更“拥有”。

团队城市

我尝试使用 TeamCity。构建构建管道比在 Jenkins 中更容易,只需单击添加步骤。

我发现困难的一件事是在一种配置中并行执行步骤。例如,提交后我想并行运行 Lint、单元测试、编译以节省一些时间。我找到了解决方案,但它使管道更难查看和维护。

TeamCity 支持项目中的多种配置,以解决作业分组问题。我没有找到对项目进行分组的选项。

4

2 回答 2

4

TeamCity是 JetBrains 提供的基于 Java 的免费 CI 服务器。我们一直在非常成功地使用它(用于非常不同类型的项目),我会毫无保留地向您推荐它。针对您的每一个要求:

  • 构建管道被配置为构建配置中的一系列步骤。一个项目可以有任意数量的配置,而这些配置又可以有任意数量的步骤。
  • 完全支持 LDAP 集成。
  • 构建管道可以并行执行。TeamCity 将工作委托给构建代理,它们通常是不同的服务器,具有执行构建配置步骤所需的所有工具(框架等)。TeamCity 的免费版本附带三个代理的许可证,因此您最多可以同时运行三个构建。额外的代理可以通过象征性的费用获得许可。
  • 我理解的“分层项目”是指一个构建管道的完成将自动触发后续管道的启动。这是受支持的,并且可以在各个阶段之间传递构建/版本号以保持一致性。
  • XUnit 具有一流的支持。Lint/编译器报告可以保存为构建的“工件”,以便以后查看。本质上,许多框架在 TeamCity 中都有内置支持,对于其他所有内容,您都可以执行任意 shell 命令,其输出可以保存为工件或用于后续构建步骤。
  • 如上所述,从站/代理支持是 TeamCity 模型的核心。

所有这些都是高度可配置和可定制的。我们已经能够使用 TeamCity 做很多多样化、复杂的事情,而且它对我们来说是完全可靠和稳定的。它看起来也不错——服务器仪表板以一种易于理解的方式排列信息。

于 2012-12-11T17:25:07.013 回答
2

免责声明:我为 Atlassian 工作,所以我有点偏见。

在 Bamboo 中配置构建管道非常容易。Bamboo 基于计划 → 阶段 → 工作结构运行,从高到低顺序列出。查看竹计划结构

Bamboo 中的每个项目都包含一系列计划。计划由一个或多个阶段组成。阶段按顺序运行,由一个或多个作业组成。作业并行运行,由一个或多个任务组成(任务按顺序运行,但可以放置在单独的作业中,以便它们并行运行并加快构建时间)。Bamboo 中的代理是执行构建步骤的机器或服务。整个 Job 将在单个 Agent 上执行。您可以在此处阅读有关代理的更多信息。至于从标签,使某些代理专门绑定到某些构建或项目的能力是新功能的候选名单。

回答你的其他观点:

  • 基于 LDAP 的用户授权/基于 ldap 组/项目的权限:您可以连接到外部 LDAP 服务器来管理用户和权限。Bamboo 具有组功能,或者如果您的团队正在使用 JIRA,您可以利用 JIRA 组来设置全局权限、计划权限,并指示哪些用户将收到有关计划构建结果的通知。全局权限控制谁有权访问构建计划和 Bamboo 服务器,而计划权限控制谁可以对计划及其作业执行特定操作。

  • 分层项目(项目/配置组):Bamboo 确实支持父子计划结构。您可以通过多种方式为构建设置触发。其中之一是基于其他构建的触发器,即,计划构建由先前成功构建其他计划或其他指定计划成功构建时触发。示例:如果 A 计划构建成功,它将自动触发 B 和 C 计划的构建。

  • 来自 xUnit、Lint、编译器警告、Robot 框架的报告:Bamboo 可以运行任何可以从命令行启动的构建过程。支持包括 Maven/Maven2、Ant、make、MSBuild、NAnt、Grails、devenv.exe 和任何 xUnix 兼容框架(JUnit、Selenium、JWebUnit、NUnit、PHPUnit 等)。

于 2013-02-25T23:45:22.403 回答