2012-04-12 5 views
6

Ich bin ein Jenkins-Neuling und brauche eine kleine Hand, weil wir nur Teile unserer App in SVN pflegen. Ich habe grundlegende Jenkins Installation Setup.Wie fügt man jenkins einige vorgefertigte Schritte hinzu?

Dies ist, was ich tun, um eine lokale DEV-Umgebung einstellen können und müssen, dass, um Jenkins übersetzt einen Build zu machen:

  1. DO SVN Kasse (und erhalten Sie die 2 Ordner, die unter SVN)
  2. löschen Sie die Ordner
  3. Kopieren über die volle App von FTP-Adresse
  4. Do SVN
  5. herunterladen sQL-Datei
  6. Impo wiederherstellen rt in MySQL

Wie würde ich die oben genannten Schritte in Jenkins bekommen? Ich weiß, dass es einige Post-Build-Schritte gibt, die ich verwenden kann. Ich bin mir nicht sicher, wie ich alles zusammensetzen soll. Jede Hilfe wird sehr geschätzt.

Antwort

3

Erzähl Jenkins über das SVN-Repository und es wird es automatisch auschecken, wenn ein neuer Build gestartet wird. Das sollte sich um 1 kümmern. 2-5 wären Build-Schritte (d. H. Ausführen von Shell-Befehlen). Im Grunde können Sie Jenkins so einstellen, dass er genau das tut, was Sie in der Befehlszeile tun, außer dass der erste Schritt automatisch erledigt wird, wenn Sie Jenkins über das Repository informieren.

2

Anstatt zu versuchen, solche Dinge in Jenkins zu tun, werden Sie wahrscheinlich einige Schwierigkeiten sparen, wenn Sie etwas wie Ant oder NAnt verwenden, um die Komplexität für Ihren Build zu behandeln.

Ich habe festgestellt, dass das Hinzufügen meiner Builds auf diese Weise mir zusätzliche Flexibilität gibt (dh wenn es über die Befehlszeile ausgeführt werden kann, kann ich es in meinem Build verwenden, anstatt ein Jenkins-Plugin zu benötigen) und macht auch die Wartung einfacher (da meine NAnt-Skripte Teil des Projekts werden und in das VCS-System eingecheckt werden, kann ich zurückgehen, wenn ich eine Änderung treffe, die nicht klappt.

Jenkins hat etwas gebaut- History Plugins, aber im Laufe der Zeit habe ich festgestellt, dass es einfacher ist, den Großteil meiner "Build" -Logik und -Komplexität außerhalb der CI-Umgebung zu halten und stattdessen einfach in die CI-Umgebung zu gelangen.