ClearCase可以实现持续集成吗?

Sté*_*ert 5 version-control continuous-integration clearcase atomicity jenkins

我们在Jenkins服务器上运行每晚构建,并使用ClearCase作为源控制管理.

由于ClearCase是以文件为中心的,因此文件签入逐个操作.与SVN或Git(以存储库为中心)相反,开发人员的修改不是原子地提交的.

这在夜间没有问题,因为开发人员不再活动,ClearCase服务器在凌晨1点锁定.

但是这里有一个例子,当开发人员白天活跃时可能会引起关注(假设每半小时运行一次):

10:55 AM - Developer1 checks in element1
10:55 AM - Developer1 checks in element2
10:56 AM - Developer1 checks in element3
11:00 AM - ### Jenkins runs BUILD #1 ### <-- succeeds
11:29 AM - Developer2 checks in element1
11:29 AM - Developer2 checks in element2
11:30 AM - ### Jenkins runs BUILD #2 ### <-- fails (element3 is missing)
11:29 AM - Developer2 checks in element3
Run Code Online (Sandbox Code Playgroud)

因此,版本构建(又名"ASAP构建"或字面意思是"持续集成")值得考虑使用ClearCase还是我们谴责永远满足于夜间构建?

Von*_*onC 3

如果您使用 UCM,您还可以考虑ClearCase UCM Plugin,并且仅在创建基线时触发按需构建。

那样:

  • 开发人员控制何时适合连续构建,但添加基线(并在需要时清理旧基线)。
  • Jenkins 可以提升基线,从而更容易跟踪哪些构建已成功或失败。

您甚至可以提供一个脚本供开发人员用于:

  • 签入所有当前签出的文件
  • 自动设置基线

这将帮助用户触发持续集成,因为他/她可以决定当前代码库何时足够稳定以进行提交(和测试)。


您仍然可以在基本 ClearCase 中使用这个想法:只需确保在所有文件上放置一个移动标签(移动意味着:如果文件具有带有该标签的先前版本,则标签将移动到刚刚签入的最新版本由开发商)。

您的 Jenkins CC 视图将配置为显示带有该标签的所有文件,这意味着如果该标签移动到新版本,cleartool lshistoryJenkins 所做的工作将发生变化,并且将触发构建。(注意:您还不能对标签图案执行此操作