I need a task to run during the final cycle point and after all other tasks associated with that or earlier cycle points have completed – in other words, enforced to be the final task of the suite run.
In my suite, the flow of tasks in any given cycle point is such that I can easily write a scheduling dependency for this finalization task that will make it the last task of the final cycle point. But that doesn’t ensure it’s the last task of the suite, because there may still be tasks associated with earlier cycle points that have not yet completed (and in fact, there typically will be). I need this task to trigger when there are no other tasks remaining in the suite run.
Is there a straightforward way to do this? I haven’t spotted it in the docs.
EDIT: I should say that (of course) shortly after I posted this, I did think of one workaround to make this happen: implement my full big suite as a subsuite of some other suite, with only one cycle point and two tasks. The first task runs my suite, and the second (which depends on the first’s success) is the final task I want to implement. But this approach is problematic, as the task will need access to a large number of environment variables that will be present in the main suite. So instead I’d need to set those in the new parent suite, and then pass them down via Jinja2 to the original main suite, which seems a bit ugly just to run one task so I hope I don’t have to do that.