CCNet Запланированная сборка, только если успешно построен другой проект - PullRequest
1 голос
/ 01 марта 2012

Я пытаюсь заставить CCNet создать проект в запланированное время, но ТОЛЬКО если другой проект был успешно построен с момента последнего запуска.У меня есть следующий блок:

<triggers>
  <multiTrigger operator="And">
    <triggers>
      <projectTrigger project="Trunk Integration Tests">
        <triggerStatus>Success</triggerStatus>
        <innerTrigger type="intervalTrigger" seconds="30" buildCondition="IfModificationsExist" />
      </projectTrigger>
      <scheduleTrigger time="15:00" buildCondition="ForceBuild" name="Scheduled" />
    </triggers>
  </multiTrigger>
</triggers>

Чтобы ответить на любые вопросы о том, почему я хочу это сделать;у нас есть интеграционные тесты, которые проводятся раз в час.Сборка, из которой получен вышеупомянутый код, является сборкой развертывания, которая загружает код, компилирует и передает код на один из наших серверов.У нас есть сборки развертывания для серверов разработки, контроля качества и промежуточной обработки.

Проблема, с которой я столкнулся, состоит в том, что эта сборка была запущена вчера в 16:45, сразу после успешной сборки интеграции.CCNet говорит, что причина сборки была Build (ForceBuild) triggered from Scheduled.

Что здесь происходит и как я могу заставить его работать так, как я описал?

Ответы [ 2 ]

1 голос
/ 01 марта 2012

Я думаю, что в этом случае можно избежать <multiTrigger>.Вы можете просто создать <projectTrigger> и установить для <innerTrigger> тип <scheduleTrigger>.Как то так:

<triggers>
  <projectTrigger project="Trunk Integration Tests">
    <triggerStatus>Success</triggerStatus>
    <innerTrigger type="scheduleTrigger" time="15:00" buildCondition="IfModificationsExist" name="Scheduled" />
  </projectTrigger>
</triggers>
0 голосов
/ 14 февраля 2013

Я использую triggerFirstTime true для стрельбы с интервалом расписания.

    <projectTrigger project="MyProject">
        <triggerStatus>Success</triggerStatus>
        <triggerFirstTime>true</triggerFirstTime>
        <innerTrigger type="scheduleTrigger" time="10:30" buildCondition="ForceBuild" name="Scheduled" />
    </projectTrigger>
...