2010-09-14 78 views
8

Ich versuche, CruiseControl zu konfigurieren, um das Projekt für jede Änderung des Quellcodes und jeden Tag um 3:00 Uhr morgens zu erstellen. Dies ist, was ich bisher getan in project.xml (und es funktioniert nicht, Builds werden täglich nicht getan):Wie konfiguriert man CruiseControl für zwei separate Builds?

... 
<schedule interval="120"> 
    <maven2 … /> 
    <maven2 … time="0300"/> 
</schedule> 
... 

Was mache ich falsch?

+0

CruiseControl oder Cruisecontrol.NET? Bitte wählen Sie das entsprechende Tag –

+0

@Der Chairman Es ist CruiseControl 2.8.3 – yegor256

Antwort

1

Wie ich verstehe, dass es in CruiseControl- keine Möglichkeit zu tun, ist dies :(

+0

Das machen wir, und das schon seit einigen Jahren mit CruiseControl. So ist es definitiv möglich, siehe meine Antwort. – daramarak

0

Ich benutzte ScheduleTrigger für CruiseControl.net.

vor einiger Zeit von CI-Server migriert CC.net zu TeamCity Ich habe - zu tun, um einen Blick nehmen (sie auch freie Version haben). Es ist viel besser und einfacher zu konfigurieren (sagen wir auf Wiedersehen zu diesen riesigen unüberschaubaren XML-Konfigurationsdateien ;-)

+0

Ist es möglich, dieses Plugin mit CruiseControl 2.8.3 zu verwenden? Übrigens, diese riesigen XML-Dateien sind eine gute Sache für mich, da ich CC ohne Benutzerschnittstelle automatisch konfigurieren kann. – yegor256

+0

@Vincenzo - Ich denke nicht, dass Sie es in CC verwenden können (es ist in CC.net). Als Nebenbemerkung habe ich auch einmal gedacht, dass automatische cc-config-Dateien Generator ist eine nette Sache.In TeamCity brauchen Sie nicht so viel Konfiguration (sie haben Build-Vorlagen, etc.) –

+0

Danke für Ihren Kommentar, aber ich kann nicht auf CC.net migrieren (wegen der Plattform), und ich bin nicht bereit für die Migration zu TeamCity. Also, ich suche nach einer Lösung für CruiseControl 2.8.3. – yegor256

2

ich usally cc.net verwenden, aber wenn ich die Dokumentation richtig verstanden haben Sie zwei Möglichkeiten:

  • Verwenden 2 Projekte
  • Stellen Sie die requireModifications Attribut false (die nicht genau das, was Sie wollen)

Was mit Ihrer Konfiguration geschieht, ist die folgende: die „Änderung“ Build wird im Laufe des Tages durchgeführt werden und damit um 03:00 Uhr kann CruiseControl keine Änderungen erkennen (zumindest würde ich das so annehmen). Da es keine Änderungen gibt, wird der tägliche Build nicht ausgeführt.

Vom documentation:

... es ist in der Regel kein gute Idee, Zeit zu mischen, baut und mehrere baut im selben Projekt wie die mehrere baut wird „fressen“ alle Änderungen bevor sie von die zeitbasierten Builds erkannt werden können.

+0

Kann ich erreichen, was ich versuche? – yegor256

+0

Ich denke schon. Definieren Sie zwei Projekte: Eines für den nächtlichen Build und eines für die "Modifikations" -Builds. –

0

ich einer Art und Weise gedacht, spaltete sich die Build-Skript-Plug-Ins machen

. Zum Beispiel: https://github.com/LightWare/LightCI/blob/master/config.xml

+0

Willkommen bei Stack Overflow! Willkommen bei stackoverflow. Diese Frage ist alt und wurde bereits beantwortet. In der Regel ist es am besten, nicht veraltete Threads wieder auferstehen zu lassen, wenn Ihre Antwort etwas wesentlich Neues oder Verschiedenes zu vorherigen Antworten beiträgt. – oers

1

wir hören für Änderungen in einem gitrepo und tun jede Nacht jede Nacht baut, tun wir es so:

<schedule interval="${buildtime}"> 
    <ant antscript="ant.bat" 
    buildfile="build.xml" 
    </ant> 
</schedule> 
<bootstrappers> 
    <gitbootstrapper localWorkingCopy="${checkout_folder}"/> 
</bootstrappers> 
<modificationset quietperiod="${quiettime}" 
     Ignorefiles="${ignorelist}"> 
    <git localWorkingCopy="${checkout_folder}"/> 
    <timebuild username="Cruisecontrol nightwatch" 
    time="0300" 
    property="build_nightly"/> 
</modificationset> 

Wie Sie hier sehen, ist der Hinweis darauf, dass der zeitgesteuerte Build in modificationset platziert ist, nicht in schedule, so dass zu jeder geplanten Zeit überprüft wird, ob sich entweder der Git Repo geändert hat oder die Zeit für den nächtlichen Build gekommen ist.