Примеры задачи модификации Reader в CC.Net? - PullRequest
3 голосов
/ 20 августа 2009

Я пытаюсь создать цепочку сборки, которая распространяет историю изменений на разных этапах сборки. Моей первой мыслью были пары "модификатор-писатель-модификатор-читатель", но у меня возникли проблемы с тем, чтобы читатель прочитал результаты. У кого-нибудь есть примеры или советы?

Я использую последнюю версию CC.NET 1.4.4 SP1. Спасибо!

1 Ответ

1 голос
/ 21 августа 2009

Понял после некоторой игры.

Обратите внимание, что вам нужна последняя версия CC.NET, я думаю, версия 1.4.3 или новее. Это из 1.4.4 SP1.

Я впервые попробовал на 1.4.0, но задача ModificationReader не существует в более старых версиях.

<cruisecontrol>

  <!--WATCH SANDBOX CONTINUOUS IS A TRIGGER TO CONTINUOUS BUILD AND INDIRECTLY FULL BUILD -->
  <project name="WatchSandboxContinuous" queue="TestQ" queuePriority="4">
    <triggers>
      <intervalTrigger/>
    </triggers>
    <sourcecontrol type="your_source_control_type">
      ...
    </sourcecontrol>
    <tasks>
      <modificationWriter>
        <filename>mods.xml</filename>
        <path></path>
        <appendTimeStamp>True</appendTimeStamp>
      </modificationWriter>
      <nullTask />
    </tasks>
  </project>

  <!--BUILD SANDBOX CONTINUOUS WOULD DO A FAST CONTINUOUS BUILD AND TRIGGER FULL BUILD -->
  <project name="BuildSandboxContinuous" queue="TestQ" queuePriority="3">
    <triggers>
      <projectTrigger project="WatchSandboxContinuous" />
    </triggers>
    <prebuild>
      <modificationReader>
        <filename>mods.xml</filename>
        <path>C:\Program Files\CruiseControl.NET\server\WatchSandboxContinuous\Artifacts</path>
        <deleteAfterRead>True</deleteAfterRead>
      </modificationReader>
    </prebuild>
    <tasks>
      <!--Propagate modification history to next full build-->
      <modificationWriter>
        <filename>mods.xml</filename>
        <path></path>
        <appendTimeStamp>True</appendTimeStamp>
      </modificationWriter>
      <nullTask />
    </tasks>
  </project>

  <!--BUILD SANDBOX FULL WOULD DO A FULL REBUILD AT NIGHT WITH ANY ADDITIONAL TASKS -->
      <project name="BuildSandboxFull" queue="TestQ" queuePriority="2">
        <triggers>
          <multiTrigger operator="And">
            <triggers>
              <projectTrigger project="BuildSandboxContinuous" />
              <scheduleTrigger buildCondition="ForceBuild" time="23:00" />
            </triggers>
          </multiTrigger>
        </triggers>
        <prebuild>
          <modificationReader>
            <filename>mods.xml</filename>
            <path>C:\Program Files\CruiseControl.NET\server\BuildSandboxContinuous\Artifacts</path>
            <deleteAfterRead>True</deleteAfterRead>
          </modificationReader>
        </prebuild>
        <tasks>
          <nullTask />
        </tasks>

      </project>

    </cruisecontrol>
...