Hier sind meine Notizen, damit CruiseControl.net mit einem Github-Repository (unter Windows) arbeiten kann. Ich führe msysgit 1.7.3.1 auf Windows 7 aus. Ich richte ccnet ein, um als Dienst zu laufen.
Die Strategie, der ich folge, ist ein Benutzerkonto erstellen, das der Ccnet-Dienst verwenden wird. Beginnen Sie damit, dass der Build zum angemeldeten Benutzer als Benutzer der Tempomatkonsole eingeloggt wird. Danach funktioniert das Einrichten des Dienstkontos, das mit diesem Benutzerkonto ausgeführt wird.
Zuerst richten Sie Ihre SSH-Schlüssel für diesen Benutzer so ein, wie Sie es mit einem anderen Benutzer tun würden. Verwenden Sie jedoch keine Passphrase. Das führt dazu, dass ccnet auf Benutzereingaben warten muss. (github ssh Schlüsselverwaltung hat Hilfe, http://help.github.com/msysgit-key-setup/)
Sie müssen auch die Repro irgendwo klonen, während dieser Benutzer angemeldet ist. Es wird eine Liste vertrauenswürdiger Hosts gespeichert, dies stellt sicher, dass der Host auf dieser Liste ist (ich denke mit Ihren .ssh Schlüsseln). Wenn es nicht auf der Liste ist, wird cruisecontrol Zeitüberschreitung, da git darauf wartet, dass Sie sagen, wenn Sie dem Host vertrauen.
Gewähren Sie dem Benutzer Lese-/Schreibberechtigungen für den Ordner, in dem der Tempomat installiert ist. Geben Sie dem Benutzer außerdem die Berechtigung, die von Ihnen verwendeten Build-Ordner zu bearbeiten, unabhängig von den Ressourcen, auf die Ihr Build möglicherweise zugreifen muss.
Die Konfigurationsdatei für die Geschwindigkeitsregelanlage muss einen Git-Source-Control-Block verwenden.
Here ist die Dokumentation auf diesem Block. Hier ist ein Beispiel:
<project name="NJasmine">
<sourcecontrol type="git">
<repository>git://github.com/fschwiet/DreamNJasmine.git</repository>
<branch>master</branch>
<autoGetSource>true</autoGetSource>
<executable>$(gitpath)</executable>
<tagOnSuccess>false</tagOnSuccess>
<commitBuildModifications>false</commitBuildModifications>
<commitUntrackedFiles>false</commitUntrackedFiles>
<workingDirectory>c:\build\NJasmine.git</workingDirectory>
<timeout>60000</timeout>
</sourcecontrol>
...
</project>
Sie werden bemerken, ich eine Variable für den gitPath verwenden, dass die Art, wie ich es nur einmal definieren.Meine Haupt-ccnet-Konfigurationsdatei verweist auf das Obenstehende, es sieht ungefähr wie das Folgende aus. Durch Bezugnahme auf eine externe Konfigurationsdatei kann ich die meisten meiner Ccnet config in der Quellcodeverwaltung halten:
<!DOCTYPE cruisecontrol [
<!ENTITY njasmine SYSTEM "file:c:\src\njasmine\ccnet.config.xml">
]>
<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
<cb:define gitpath="C:\Program Files (x86)\Git\cmd\git.cmd"/>
&njasmine;
</cruisecontrol>
Hinweis ich den git Pfad auf „C: \ Program Files (x86) \ Git \ cmd \ git.cmd "und nicht" C: \ Programme (x86) \ Git \ bin \ git.exe ". Ich konnte bin \ git.exe niemals zum Laufen bringen. Ich fand auch, dass die schreibgeschützten URLs in einem gemeinsam genutzten Repository leichter zu bearbeiten sind als die Lese-/Schreib-URLs, also benutze die schreibgeschützten URLs.
Danke dafür. – 0x1mason