Improvement
Actions steps can now be run in parallel
GitHub Actions now supports running steps concurrently using background.
Previously, all steps in a workflow ran in sequence, with each step starting only after the previous step completed. Previously, you could run steps in a non-blocking way using shell backgrounding (&), but that often interleaved logs from multiple steps. This new capability enables steps to run in parallel while retaining separate logs and execution.
Four new keywords are being introduced:
background: trueruns a step asynchronously and immediately continues to the next step.wait/wait-allpauses execution until one or more named background steps complete.waitcan target one or more specific background steps, whilewait-allpauses until all prior background steps have completed.cancelgracefully terminates a background step when you no longer need it, enabling you to start long-running services with a background step.paralleltakes a group of steps and converts them tobackgroundsteps with awaitafter, enabling you to easily run multiple steps in parallel. This is syntactic sugar for the “run these steps concurrently, then continue” pattern.
This update helps you handle common patterns in a single job:
- Running independent work in true parallel, such as multiple builds at once
- Starting a background service, running dependent work, then stopping that service cleanly
- Kicking off non-blocking work that can continue while later steps run, like uploading telemetry while packaging continues
Read the GitHub Actions workflow syntax documentation for current syntax and usage details.