代码之家  ›  专栏  ›  技术社区  ›  Velocoder

如何运行CruiseControl.net任务,但必须在特定任务结束后才能运行?

  •  3
  • Velocoder  · 技术社区  · 16 年前

    例如,我有三个任务:任务1、任务2、任务3。如何写 CruiseControl.NET 运行task3但仅在task2成功结束后才运行的配置文件?

    4 回复  |  直到 16 年前
        1
  •  5
  •   George    16 年前

    CruiseControl.net v1.5使用新的顺序和并行任务增强了任务的执行…

    http://confluence.public.thoughtworks.org/display/CCNET/Sequential+Task

    <sequential continueOnFailure="false">
      <description>Example of how to run multiple tasks in sequence.</description>
      <tasks>
        <!-- Tasks defined here -->
      </tasks>
    </sequential>
    
        2
  •  4
  •   Community Mohan Dere    8 年前

    根据您试图完成的任务,可以通过以下两种方式轻松完成:

    a)CruiseControl.net支持所谓的 projectTriggers :

    为了使用这种方法,需要将每个任务隔离到它们自己的项目配置中。基本上, TASK3项目 监视的生成状态 TASK2项目 . 当 TASK2项目 成功完成后, TASK3项目 触发生成。要设置ProjectTrigger,请编辑 TASK3项目 在ccnet.config中定义并创建一个触发器块,如下所示:

    <triggers>
      <multiTrigger>
        <triggers>
          <intervalTrigger seconds="30" />
          <projectTrigger project="task2">
            <triggerStatus>Success</triggerStatus>
          </projectTrigger>
        </triggers>
      </multiTrigger>
    </triggers>
    

    b)使用nant目标设置任务顺序:

    正如所指出的 Wim ,您可能需要考虑将任务分解为nant目标,而不是在ccnet.config中尝试这样做。就我个人而言,我觉得这种方法更舒服,因为我知道南特擅长做这种事情。

        3
  •  2
  •   Peter Mortensen Pieter Jan Bonestroo    16 年前

    我建议你在你的 NAnt 或者改为msbuild任务,并将其移出CruiseControl.net配置。

    你的任务是什么?你为什么不能把它们移到你的nant或msbuild脚本中?

        4
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    16 年前

    我会推荐一个脚本文件(BAT, PowerShell )运行任务并检查是否成功。