Лучшим и более логичным способом решения проблемы может быть обратное и вместо того, чтобы потерпеть неудачу, если нет ничего, чтобы обновить (это отдельный шаг, который делает только это), вы могли бы добавить все свои задачи обновления с условной зависимостью по переменной upgrade
. По сути, просто добавьте
when: upgrading.changed
к задачам, которые должны выполняться только во время обновления.
Это немного больше работы, но также дает ясность, а сам содержит логику, которая влияет на заданную задачу внутри себя, а не на что-то, что выше, что может или не может прекратить ее раньше.