Ich habe Problem in configure jenkins zum automatischen Build und Java-Projekt bereitstellen. Ich möchte einmal am Tag bauen und bereitstellen. Allerdings sind diese Änderungen nur während des Tages Änderungen. Wenn es keine Änderungen gibt, möchte ich nicht, dass jenkins automatisch erstellt und implementiert. Hinweis: Ich habe gitlab als Quellcodeverwaltung verwendet. Können Sie mir bei dieser Konfiguration helfen?Machen jenkins Auto einen pro Tag bauen, aber nur bauen, wenn Quellcode gibt es geändert
Antwort
Zunächst sollten Sie die Git SCM Abschnitt an der Spitze des Job Configseite so konfigurieren, dass Ihre Gitlab Repository zeigen.
Dann können Sie den integrierten Build-Trigger "Poll SCM" verwenden - dies überprüft regelmäßig, ob sich Ihr Quellcode-Repository geändert hat - und wenn dies der Fall ist, wird ein Build dieses Jobs gestartet.
Wenn sich das Repository seit dem letzten Build nicht geändert hat, wird kein Build mehr gestartet.
Sie können diesen Auslöser konfigurieren - ob mit einer Cron-artigen Syntax oder einer Verknüpfung wie @daily
oder @midnight
- so dass Jenkins das Quell-Repository nur einmal am Tag überprüft.
Darüber hinaus sollten Sie sicherstellen, dass die Option "Ignoriere Post-Commit-Hooks" aktiviert ist. Wenn Sie Webhooks aus Ihrem Git-Repository verwenden, um Jenkins-Jobs zu starten, sobald ein Commit stattfindet, verhindert diese Option, dass Ihr einmal täglicher Job für jedes Git-Commit ausgelöst wird.
Hier ist das Detail Dokument: "Jenkins CI Integration"
http://doc.gitlab.com/ee/integration/jenkins.html
aktualisieren Ihren Kommentar entsprechen.
Sie wollen nicht die Jenkins bauen über Webhook auszulösen. Es ist in Ordnung.
Sie wollen einen Tag den Code ändern 1 Zeit zu überprüfen.
Beispiel auf Linux, um 6:00 Uhr bauen, wenn es eine Codeänderung ist.
Installieren
Bauen periodisch
- Build-Trigger:
0 6 * * *
- Build-Trigger:
- Shell Execute
gefällt das
SINCE=`curl http://192.168.0.1:8080/job/MyJava/lastStableBuild/buildTimestamp?format=dd-MMM-yyyy`
cd /opt/code/myjava/
git log --pretty="%h - %s" --author=gitster --since=$SINCE --before=$SINCE --no-merges -- t/
Beitrag Aktionen Bauen
- Beitrag Aufgabe
- Protokolltext bauen:
commit
- Operation:
AND
- Script: Ihr Skript Java
Jenkins Text Finder
- Auch suchen die Konsolenausgabe
- Regulärer Ausdruck zu bauen:
Could not match
- Instabil wenn gefunden
Ich kenne diese Konfiguration. Aber es sieht so aus, als ob du meine Frage nicht verstehst.Ich möchte fragen, ob es einen Weg gibt, jenkins schlauer zu machen und Veränderungen im Quellcode an einem Tag zu erkennen, und wenn es Änderungen gibt, dann build, aber wenn es jetzt nichts bringt. verstehst du? –
Großartig, ich habe gerade diese Lösung gefunden. Wie auch immer, was bedeutet Option Ignorieren Post-Commit-Haken für verwendet? Kannst du es ein bisschen erklären? –
@chetratep Es ist bereits in der Antwort erwähnt. Wenn Sie [git webhooks] verwenden (http://kohsuke.org/2011/12/01/polling-must-die-triggering-jenkins-builds-from-a-git-hook/), um Ihren Jenkins-Job zu starten Das Aktivieren dieser Option verhindert, dass eingehende Webhooks einen Build dieses Jobs auslösen. –