J'ai un scénario pour déclencher une autre construction dans POST BUILD ACTION, et cela prendra 1m pour terminer et je veux juste que la construction actuelle attende que ce travail de dépendance soit terminé (durée 1m) et met à jour le statut (TERMINÉ , ÉCHEC, INSTABLE).
C'est comme si j'avais un nom de travail appelé A et B.B est la dépendance qui doit s'exécuter dans POST BUILD ACTION dans JOB A. Une fois que le JOB B a terminé l'exécution (durée 1M), je veux publier le statut de JOB A. JOB A doit être mis en attente jusqu'à la fin de l'exécution du JOB B dans POST BUILD ACTION.
Comment puis-je y parvenir? Toute piste ...
3 Réponses :
Cela semble être un problème délicat à résoudre car POST BUILD signifie que le travail B se déclenchera APRÈS que le travail A soit terminé.
Quelque chose que vous pouvez essayer est de déclencher le Job A et B en parallèle et pour le Job B, vous pouvez ajouter une étape de construction à Execute shell
avec par exemple sleep 5m code >, de sorte que le travail B dormira 5 minutes au début, puis il exécutera le travail que vous souhaitez. Dans le Job A, vous pouvez alors avoir un script shell qui lira en boucle la sortie console du Job B et la boucle se terminera après que la console du Job B produira la sortie
Finished:
et vous pourrez alors continuez avec la logique basée sur la sortie du travail.
Pour lire la sortie de la console, vous pouvez faire quelque chose comme ça dans une boucle (et grep pour le mot-clé Finished:
):
curl -u $ {USERNAME}: $ {TOKEN} {JENKINS_URL} / job / {JOB_NAME} / lastBuild / consoleText | grep {ce dont vous avez besoin}
C'est assez facile si vous ne vous limitez pas à le faire uniquement dans la section Post Build (par exemple, lorsque vous devez déclencher une autre build uniquement si la build principale est stable, mais je pense qu'avec 1min de travail, vous ne vous souciez pas de ça).
Il vous suffit d'installer le plugin Parameterized Trigger et il vous permettra d'ajouter La section Déclenchement / appel s'appuie sur d'autres projets
dans la section Build (pas dans Post Build ). Et vous devez également activer l'option Bloquer jusqu'à ce que les projets déclenchés aient terminé leurs builds
pour attendre que votre tâche B soit terminée et vérifier l'état de la tâche B:
Vous devez tirer parti du plugin PostBuildScript avec le plug-in plugin Parameterized Trigger . PostBuildScript vous donnera une étape de post-construction appelée Exécuter des scripts, qui vous permettra d'ajouter une étape de construction de déclencheur paramétré dans l'étape de post-construction. Ainsi, vous pouvez configurer cela pour attendre la fin du travail déclenché.