Mein Jenkins-Build hängt zwischen Build- und Post-Build-Schritten.
Die Konsolenausgabe zeigt, dass es eine Wartezeit von 6 Minuten gibt (aber ich habe Wartezeiten von bis zu einer Stunde gesehen):
10:53:26 BUILD FAILED in 1m 7s
10:53:26 4 actionable tasks: 4 executed
10:53:26 Build step 'Invoke Gradle script' changed build result to FAILURE
10:53:26 Build step 'Invoke Gradle script' marked build as failure
11:09:29 [CucumberReport] Using Cucumber Reports version 4.9.0
Ich fand dieses und diese Fragen , die ähnliche Probleme haben, und sie sagen , dass die Lösung setzt -DSoftKillWaitSeconds=0
in jenkins.xml
.
Ich brauche jedoch eine Möglichkeit, die Option nur für bestimmte Jobs festzulegen, ohne die globalen Jenkins-Einstellungen zu beeinträchtigen (ich möchte mich nicht mit anderen Projekten herumschlagen).
BEARBEITEN:
Wenn ich den Job vor dem Schritt [CucumberReport] manuell abbreche, werden weiterhin Gurkenberichte generiert.
Ich habe auch das Kontrollkästchen Build abbrechen aktiviert, wenn es in den Build-Umgebungsoptionen nicht funktioniert. Die No Activity
Timeout -Strategie ist auf (Timeout-Sekunden = 2) festgelegt.
Wenn ich das Projekt mit diesen Einstellungen erstelle, schlägt der Build wie zuvor mit "Abgebrochen nach 0 Sekunden" im Erstellungsverlauf fehl, aber die Konsolenausgabe ist dieselbe. (Es ändert sich nichts, Gurkenberichte werden jedoch nach einer bestimmten Zeitspanne generiert.)
timeout
Option in Ihrer Pipe festlegen ? Sie sollten auf jeden Fall eine vereinfachte Version Ihrer Pipe veröffentlichen. Es ist schwer zu "erraten", was falsch sein könnte. Außerdem ist diese Frage wahrscheinlich besser geeignet, um unter devops.stackexchange.comAntworten:
Es ist nicht möglich, einen auftragsspezifischen Wert für auszuwählen
SoftKillWaitSeconds
(der Wert wird vom Jenkins-Kern an einer Stelle abgeleitet, an der der Auftragsname nicht bekannt ist).Meine Empfehlung ist, die Abbruchbehandlung in Ihrem Job selbst zu korrigieren , damit sie nicht von einem "Soft-Kill-Timeout" abhängt. Wenn Sie auf einem Unix-ish-System ausgeführt werden, können Sie dies sicherstellen, indem Sie Ihren Job in einer neuen Prozessgruppe (
set -m
in Bash) ausführen und (zum Beispiel) einen geeigneten Exit-Trap einrichten.quelle
Wir verwenden das Build-Timeout-Plugin, um feststeckende Jobs mit einer auf
No Activity
oder eingestellten Timeout-Strategie zu beendenAbsolute
. Für mich ist dies ein guter Ansatz, wenn Sie Freestyle-Projekte verwenden. Der Grund, warum Ihr Build "Nach 0 Sekunden abgebrochen" ist, ist, dass höchstwahrscheinlich unvollendete untergeordnete Prozesse vorhanden sind. Aus der Dokumentation :Sie können die absolute Timeout-Strategie ausprobieren. Sie können eine globale Variable definieren, damit Sie den Timeout-Wert in Jobs nicht wiederholen:
Wenn dies nicht funktioniert, können Sie versuchen, in den Protokollen https: // your-jenkins-server / log oder in einem Thread-Dump nachzuschauen.
Das Hängen kann durch eine neue / alte Version eines Plugins verursacht werden. Versuchen Sie herauszufinden, was die unvollendeten untergeordneten Prozesse sind. Versuchen Sie, die Aktionen nach dem Erstellen einzeln zu deaktivieren, um die Aktion zu finden, die möglicherweise die Ursache des Problems ist. Sie können /superuser/1401879/debugging-what-happens-when-a-jenkins-build-unexpectedly-pauses-or-hangs sehen
quelle