5

我们在 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

因此, ClearCase 是否值得考虑发布构建(也称为“ASAP 构建”或字面意思是“持续集成”),还是我们注定永远满足于每晚构建?

4

2 回答 2

3

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

那样:

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

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

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

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


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

您的 Jenkins CC 视图将被配置为显示带有该标签的所有文件,这意味着如果该标签移动到新版本,cleartool lshistoryJenkins 完成的操作将更改,并且将触发构建。(注意:您还不能为 label 模式执行此操作

于 2013-07-19T10:54:50.813 回答
1

有一个 clearcase 插件https://wiki.jenkins-ci.org/display/JENKINS/ClearCase+Plugin它看起来有点复杂,但最近有更新。

另一方面,您可以桥接到 git/svn如何将 git 桥接到 ClearCase?

于 2013-07-19T10:50:40.940 回答