在cruisecontrol.net中更改DVCS的操作流程?

时间:2010-12-14 16:39:20

标签: mercurial continuous-integration cruisecontrol.net dvcs

Operation flow of CCNet常见问题解答中记录的CruiseControl.NET操作流程,其中首先生成标签使得某些感知集中式VCS,但对于DVCS而言则不然。使用DVCS,最好在获取源之后生成标签,因为标签可能需要源本身(例如,Mercurial中的.hgtags文件或其他本地源文件用于计算版本和构建数字。)

有没有人想办法在获取源码后运行CCNet贴标机?

2 个答案:

答案 0 :(得分:3)

我们没有在CC.NET中使用Labeller,但是,我们的方法也可能对您有用:

  • 创建一个执行的单独项目MercurialCheckout
    • Mercurial checkout
    • 更新文本文件的可执行任务触发构建服务器上的/ mercurial.txt
  • 改变你的真实"项目从sourcecontrol类型mercurial到sourcecontrol类型文件系统,观察触发器/目录

然后您的真实项目包括Labeller任务,并且由于之前完成了Mercurial结账,Labeller应该生成"权利"标签

亲切的问候 弗兰克

答案 1 :(得分:0)

在源控制任务之后无法执行贴标签任务。但是,如果标签源数据专门存储在本地工作目录中,则只需要这样做。您说您的标签源是版本控制的,因此您应该使用贴标机,而不是从版本控制中检索它。

大多数版本控制系统都有一个命令行,允许您从stdout读取文件内容。 CCNet标签器易于编写和部署。您可以直接从源中获取获取最新版本信息所需的命令行和参数。

示例ccnet labeller config

 <labeller type="svnLabeller">
   <svn>C:\Program Files (x86)\svn\bin\svn.exe</svn>
   <repository>https://path.to/project</repository>
   <versionInfoPath>/AssemblyInfo.cs</versionInfoPath>
  </labeller>