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

CruiseControl.NET操作流程,在CCNet FAQ的操作流程中有记录,其中首先生成标签对于集中式VCS有一定意义,但对于DVCS来说并非如此。 对于DVCS, 获取源代码生成标签会更好,因为标签可能需要源自身(例如Mercurial中的.hgtags文件或用于计算版本和内部版本号的其他本地源文件)。

有没有人想过在获得源代码后运行CCNet贴标机的方法?


我们不使用CC.NET中的Labeller,但是,我们的方法也可能适用于您:

  • 创建一个独立的项目MercurialCheckout来执行
  • 水银结帐
  • 更新文本文件的可执行任务在构建服务器上触发/ mercurial.txt
  • 将您的“真实”项目从sourcecontrol类型的mercurial更改为sourcecontrol类型的文件系统,观察触发器/目录
  • 然后,您的真实项目将包含Labeller任务,并且由于之前完成了Mercurial结帐,因此Labeller应生成“正确”标签。

    亲切问候弗兰克


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

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

    示例ccnet labeller配置

     <labeller type="svnLabeller">
       <svn>C:Program Files (x86)svnbinsvn.exe</svn>
       <repository>https://path.to/project</repository>
       <versionInfoPath>/AssemblyInfo.cs</versionInfoPath>
      </labeller>
    
    链接地址: http://www.djcxy.com/p/3987.html

    上一篇: Change operation flow in cruisecontrol.net for DVCS?

    下一篇: How to wait for email intent to finish and get result?