J'ai une fabrique de buildbot avec plusieurs étapes. L'une des étapes expire périodiquement, ce qui oblige buildbot à lancer une exception et à quitter. Cependant, même dans ce cas, j'aimerais pouvoir stocker les journaux générés. Une option consiste à ajouter une étape qui ne s'exécute que si l'étape précédente a expiré. L'utilisation de doStepIf
est possible. Cependant, il n'y a aucun moyen de voir le statut TIMEOUT
il y a juste SUCCESS, WARNINGS, FAILURE, or SKIPPED
. Quelle est la meilleure façon de résoudre ce problème?Comment exécuter une étape conditionnelle si le délai a expiré
un exemple de la fonction doStepIf
:
from buildbot.status.builder import Results, SUCCESS
def doStepIf(step):
allSteps = step.build.getStatus().getSteps()
lastStep = allSteps[-1]
rc = lastStep.getResults()[0] # returns a tuple of (rc, string)
# if the rc == SUCCESS then don't continue, since we don't want to run this step
return Results[rc] == Results[SUCCESS]
Quelle valeur d'attribut 'haltOnFailure' a votre étape? Si elle est définie sur True, les étapes suivantes (par exemple, le stockage des journaux) seront ignorées, sauf si l'attribut 'alwaysRun' est défini sur True. Voir http://docs.buildbot.net/latest/manual/cfg-buildsteps.html?highlight=haltonfailure#common-parameters pour plus de détails – rutsky