Ma génération Jenkins se bloque entre les étapes de génération et de post-génération.
La sortie de la console montre qu'il y a une attente de 6 minutes (mais j'ai vu des attentes pouvant aller jusqu'à une heure):
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
J'ai trouvé cette et cette question qui ont des problèmes similaires, et ils disent la solution est mise -DSoftKillWaitSeconds=0
en jenkins.xml
.
Cependant, j'ai besoin d'un moyen de définir l'option pour des travaux particuliers uniquement, sans jouer avec les paramètres globaux de Jenkins (je ne voudrais pas jouer avec d'autres projets).
ÉDITER:
Lorsque j'interromps manuellement le travail, avant l'étape [CucumberReport], les rapports Cucumber sont toujours générés.
J'ai également coché la case Abandonner la génération si elle est bloquée dans les options de l'environnement de génération, avec la stratégie de No Activity
délai d'attente définie sur ( Délai d' expiration secondes = 2).
Lorsque je crée le projet avec ces paramètres, la génération échoue avec "Abandonné après 0 secondes" affiché dans l'historique de génération, comme précédemment, mais la sortie de la console est la même. (Rien ne change, les rapports de concombre seront générés mais après un certain délai).
timeout
option dans votre pipe? Vous devez absolument publier une version simplifiée de votre pipe. Il est difficile de «deviner» ce qui pourrait mal se passer. En outre, cette question est probablement mieux adaptée pour être sur devops.stackexchange.comRéponses:
Il n'est pas possible de sélectionner une valeur spécifique au travail pour
SoftKillWaitSeconds
(la valeur est dérivée du noyau Jenkins à un point où le nom du travail n'est pas connu).Ma recommandation est de corriger la gestion de l'abandon dans votre travail lui - même , de sorte qu'il ne dépendra pas d'un "timeout de mise à zéro progressive". Si vous exécutez sur un système Unix-ish, vous pouvez vous en assurer en exécutant votre travail dans un nouveau groupe de processus (
set -m
en bash) et (par exemple) en configurant un piège de sortie approprié.la source
Nous utilisons le plugin Build-timeout pour tuer les travaux bloqués avec une stratégie de délai définie sur
No Activity
ouAbsolute
. Pour moi, c'est une bonne approche lorsque vous utilisez des projets freestyle. La raison pour laquelle votre génération est "abandonnée après 0 seconde" est qu'il y a très probablement des processus enfants inachevés. De la documentation :Vous pouvez essayer la stratégie de temporisation absolue. Vous pouvez définir une variable globale afin de ne pas répéter la valeur du délai d'expiration dans les travaux:
Si cela ne fonctionne pas, vous pouvez essayer de regarder dans les journaux https: // your-jenkins-server / log ou dans un vidage de thread.
Le blocage peut être provoqué par une nouvelle / ancienne version d'un plugin. Essayez de trouver quels sont les processus enfants inachevés. Essayez de désactiver les actions de post-génération une par une pour trouver celle qui peut être à l'origine du problème. Vous pouvez voir /superuser/1401879/debugging-what-happens-when-a-jenkins-build-unexpectedly-pauses-or-hangs
la source