Ich verwende Jenkins, um eine Reihe von Importaufträgen auszulösen und zu verwalten. Ich möchte mein Importskript in Github ablegen, und wenn Jenkins den Job erstellt, sollte es (a) dieses versionierte Skript aus Github ziehen und (b) das Skript ausführen.
Das Problem, auf das ich stoße, ist, dass ich nicht weiß, wie ich auf den Namen des Skripts verweisen soll, das innerhalb des Jobs ausgeführt werden soll. Ich gehe davon aus, dass der Quellcode in das Arbeitsbereichsverzeichnis gezogen wird. Ist diese Annahme richtig? (Wenn es nur Dokumentation gäbe!)
Folgendes habe ich bisher getan:
- Installierte Jenkins (offensichtlich) auf meinem Windows Server (nein, ich hatte keine Wahl)
- Erstellt ein Repository in meinem Github-Konto und fügt meinen Code ein
- Es ist öffentlich unter https://github.com/mcholl/SARS-Import/
- Sie werden sehen, dass ich zwei Skripte habe, roottest.py und omniture-video \ test.py. Der Code dort ist von Apple patentiert, da bin ich mir sicher :)
- Die Idee ist, dass ich roottest.py ausführen möchte
- Installierte das Github-Plugin
- Erstellt einen Job wie folgt:
- Projektname = "Testen der Github-Integration"
- GitHub-Projekt: https://github.com/mcholl/SARS-Import.git/
- Fügen Sie einen Windows-Stapelbefehl hinzu: python roottest.py
- Führen Sie den Job manuell aus
Was ich jedoch erhalte, ist eine Fehlermeldung, dass die Datei nicht gefunden werden kann. Dies ist seltsam, da ich davon ausgehe, dass der Workflow "eine lokale Kopie der Quelle in das Verzeichnis ... (Job) / workspace / ziehen und dann den Stapelbefehl im Kontext des Arbeitsbereichsverzeichnisses ausführen würde.
Hier ist die vollständige Konsolenausgabe:
Vom anonymen Benutzer gestartet Erstellen im Arbeitsbereich C: \ Programme (x86) \ Jenkins \ jobs \ Testen der Github-Integration \ Arbeitsbereich [Arbeitsbereich] $ cmd / c Rufen Sie C: \ Windows \ TEMP \ hudson1966342425043540895.bat auf
C: \ Programme (x86) \ Jenkins \ jobs \ Testen der Github-Integration \ Arbeitsbereich> Python roottest.py Python: Datei 'roottest.py' kann nicht geöffnet werden: [Errno 2] Keine solche Datei oder kein solches Verzeichnis
C: \ Programme (x86) \ Jenkins \ jobs \ Testen der Github-Integration \ Arbeitsbereich> Beenden 2 Erstellungsschritt 'Windows-Batch-Befehl ausführen' markiert Build als Fehler Abgeschlossen: FEHLER
Offensichtlich hatte ich erwartet, nur die Ergebnisse meiner Druckanweisung in der Konsole zu sehen.
Was habe ich vermasselt? Und warum ist mein Skript nicht schon da?
Antworten:
Für meinen Build (auf einem Linux-Host) führe ich Folgendes aus (als Build-Schritt in Jenkins), um ein Build-Skript aus dem frisch ausgecheckten Arbeitsbereich heraus auszuführen:
Shell-Befehl ausführen:
Ich gehe davon aus, dass es unter Windows ähnlich funktionieren würde, außer natürlich, dass Sie \ anstelle von / verwenden und Python anstelle von sh verwenden, um Ihr Skript auszuführen.
quelle
Sie können zwei Zeilen in Ihren Build schreiben:
quelle
Sie könnten ein Skript in Git speichern, z. B. test.sh:
Fügen Sie dann in der Eingabe "Shell ausführen" den Import dieses Skripts ein und rufen Sie "_test_func" auf:
Ergebnis:
quelle