Mercurial分支机构似乎没有受到CruiseControl的尊重

时间:2012-02-26 19:59:25

标签: cruisecontrol.rb

我正在尝试使用cruisecontrol.rb进行持续集成。正在构建的代码驻留在Mercurial存储库中。

我希望CI只有在将更改推送到特定分支时才能运行。文档指出this is supported。我试过了:

./cruise add my_project -r repository_location -s hg -b development

我还尝试在cruise_config.rb中使用this approach作为项目:

Project.configure do |project|
  project.source_control = SourceControl::Mercurial.new(:repository => 'repository_location', :branch => 'development')
end

无论分支尖端指向什么,这两者似乎都会导致项目从尖端构建。

最终,我可以使它工作(更多基于我对Mercurial的了解而不是cruisecontrol.rb),但似乎上面两个选项中的一个应该有用。

以下是我的工作:

  1. 添加了第一个示例中的项目。
  2. 从cruisecontrol.rb的回购副本中删除了除第一个之外的所有changsets。
  3. 只拉出我想要的分支。
  4. 在cruisecontrol.rb的hgrc中添加了以下别名:

    pull = pull --branch development
    
  5. 修改了cruisecontrol / lib / source_control / mercurial / log_parser.rb中的以下代码:

    def parse(message)
      ...
      entries.each do |entry|
        next unless entry.match(/^changeset:\s+\d+:(.....)/) # Added only this line.
        ...
      end
    end
    
  6. 到目前为止,它似乎按预期工作。我将为其他分支添加构建,我们会看到。

    但是,我希望有人可以告诉我如何在cruisecontrol.rb的构造中执行此操作,因为所有文档似乎都表明这将得到支持。

0 个答案:

没有答案