Continuous integration Is clearcase UCM触发器在多站点环境中很麻烦

Continuous integration Is clearcase UCM触发器在多站点环境中很麻烦,continuous-integration,build-process,build-automation,clearcase,clearcase-ucm,Continuous Integration,Build Process,Build Automation,Clearcase,Clearcase Ucm,为了实现持续集成,我考虑编写Clearcase触发器 我知道操作后触发器[在交付到集成流之后]对我很有用 我只是向我的架构师寻求关于触发器实现的建议 他告诉我不要使用触发器,因为触发器在多站点环境中很麻烦 这是神话还是真的?有没有人遇到过因触发器而使其构建更烦人的问题 请告诉我在多站点环境中使用触发器是否安全?您的架构师可能提到过,这说明了以下事实: 根据设计,触发器类型必须在每个VOB中本地创建 触发器类型与其他元数据类型(标签、属性、分支、元素、超链接)不同,不能在管理VOB中创建为全局资源

为了实现持续集成,我考虑编写Clearcase触发器

我知道操作后触发器[在交付到集成流之后]对我很有用

我只是向我的架构师寻求关于触发器实现的建议

他告诉我不要使用触发器,因为触发器在多站点环境中很麻烦

这是神话还是真的?有没有人遇到过因触发器而使其构建更烦人的问题


请告诉我在多站点环境中使用触发器是否安全?

您的架构师可能提到过,这说明了以下事实:

根据设计,触发器类型必须在每个VOB中本地创建

触发器类型与其他元数据类型(标签、属性、分支、元素、超链接)不同,不能在管理VOB中创建为全局资源,因为它们不能正确遍历超链接;这就是管理VOB连接到其客户端VOB的方式

您可以尝试复制触发器:

cptype
(复制类型)命令创建一个新类型对象,该对象是现有类型对象的副本。现有对象和新对象可以位于同一VOB中,也可以位于不同的VOB中。只有在使用不同的VOB制作副本时,副本才能与原件同名

但是:

执行此命令后,两个对象(原始对象和副本对象)不保留任何连接
它们只是具有相同属性的两个对象,甚至可能具有相同的名称。如果使用
cleartool mktrtype-replace
对触发器进行了任何更改,则必须手动对触发器的每个副本进行更改,或者必须使用
-replace
开关再次执行复制;有关更多信息,请参阅


我建议使用外部系统来监控、触发和报告您的持续集成

您可以:

  • 通过使用CCRC而不是多站点工作流简化ClearCase设置。
    在这种情况下,文章“”可能会有所帮助(您不必使用CruiseControl:Jenkins、Hudson或TeamCity在这种情况下同样适用)

  • 更一般地说,让CI工具(同样:CruiseControl:Jenkins或Hudson或TeamCity)监视特定视图,该视图表示CI工具定期更新,检测任何更改并触发构建。见“”

您的架构师可能提到过,这表明了以下事实:

根据设计,触发器类型必须在每个VOB中本地创建

触发器类型与其他元数据类型(标签、属性、分支、元素、超链接)不同,不能在管理VOB中创建为全局资源,因为它们不能正确遍历超链接;这就是管理VOB连接到其客户端VOB的方式

您可以尝试复制触发器:

cptype
(复制类型)命令创建一个新类型对象,该对象是现有类型对象的副本。现有对象和新对象可以位于同一VOB中,也可以位于不同的VOB中。只有在使用不同的VOB制作副本时,副本才能与原件同名

但是:

执行此命令后,两个对象(原始对象和副本对象)不保留任何连接
它们只是具有相同属性的两个对象,甚至可能具有相同的名称。如果使用
cleartool mktrtype-replace
对触发器进行了任何更改,则必须手动对触发器的每个副本进行更改,或者必须使用
-replace
开关再次执行复制;有关更多信息,请参阅


我建议使用外部系统来监控、触发和报告您的持续集成

您可以:

  • 通过使用CCRC而不是多站点工作流简化ClearCase设置。
    在这种情况下,文章“”可能会有所帮助(您不必使用CruiseControl:Jenkins、Hudson或TeamCity在这种情况下同样适用)

  • 更一般地说,让CI工具(同样:CruiseControl:Jenkins或Hudson或TeamCity)监视特定视图,该视图表示CI工具定期更新,检测任何更改并触发构建。见“”