J'essaie de gérer l'échec sur le tissu, mais l'exemple que j'ai vu dans la documentation était trop localisé à mon goût. J'ai besoin d'exécuter des actions de retour en arrière si l'une des actions échoue. J'ai essayé, alors, d'utiliser des contextes pour gérer cela, comme ceci :
@_contextmanager
def failwrapper():
with settings(warn_only=True):
result = yield
if result.failed:
rollback()
abort("********* Failed to execute deploy! *********")
Et puis
@task
def deploy():
with failwrapper():
updateCode()
migrateDb()
restartServer()
Malheureusement, lorsque l'une de ces tâches échoue, je ne reçois rien sur result
.
Existe-t-il un moyen d'y parvenir ? Ou existe-t-il un autre moyen de gérer de telles situations ?