Complex workflow tree

We have multiple workflows after which we would like to execute another one.
Here is a tree of what execution would look like

A──┬─B1─┬──A(continued)
   ├─B2─┤
   ├─B3─┤
   └─B4─┤

Where

  • A is a workflow which will trigger workflows B1, B2, B3, B4
  • A, B1, B2, B3 and B4 are different .yml files
  • When workflows B1, B2, B3 and B4 are finished (some may have fail), A will continue, considering overall results of B1, B2, B3 and B4 as well as their artifacts.

I didn’t find anything in the documentation how to do something like that.
Any help would be welcome.
Gautier

Hey!

Question:

Do you HAVE to have multiple workflow files? Or can you do this with one workflow file and multiple jobs? One workflow file with multiple jobs is easier, though there are some potential options if you have to have multiple workflow files.

If you do have to have multiple workflow files, will those files all be in the same repo, or will they be in different repos?

Hi Mickey,

Yes, we need to have multiple workflow files, for multiple reasons.

Yes, all the workflow files are in the same repo.

gautier

You could use the repository_dispatch event, and trigger one workflow from another: Trigger a workflow from another workflow

But that just triggers the workflows and doesn’t automatically report back to you, or put your primary workflow into a wait state… So you’ll have to either find an Action someone has created, or create your own scripts, to “wait” and watch the other workflows, and then continue in the primary workflow.

Since all your workflows are in the same repo, you could use the workflow_run event to trigger things as well.

Adding this same request, for reference: