github GitHub Changelog ·

GitHub Actions supports running workflow steps in parallel

infragaengineer
feature

GitHub Actions now supports running workflow steps concurrently using the `background` keyword, allowing steps to execute in parallel while maintaining distinct logs. This enhancement enables more efficient job execution by handling patterns like parallel builds or starting background services without interleaved logs. Previously, developers relied on shell backgrounding which complicated log management. This feature is available now with new keywords `background`, `wait`, `wait-all`, and `cancel`.

  • Enable parallel execution of workflow steps
  • Introduce new keywords for managing background steps
  • Add `parallel` keyword as syntactic sugar for concurrent steps
  • New capability supports common CI/CD patterns
Features (1)
  • Enable parallel execution of workflow steps

    GitHub Actions now supports running workflow steps concurrently using the `background` keyword. This allows multiple steps to run in parallel while preserving separate logs and execution contexts, improving efficiency for common job patterns.

Enhancements (2)
  • Introduce new keywords for managing background steps

    Four new keywords (`background`, `wait`, `wait-all`, `cancel`) are introduced to manage asynchronous and parallel step execution. `background: true` runs a step asynchronously, while `wait` and `wait-all` pause execution until specified background steps complete. `cancel` allows graceful termination of background steps.

  • Add `parallel` keyword as syntactic sugar for concurrent steps

    The new `parallel` keyword simplifies running multiple steps concurrently. It acts as syntactic sugar, converting a group of steps into background steps followed by a `wait`, enabling a straightforward pattern for executing multiple steps in parallel before proceeding.

Notes (1)
  • New capability supports common CI/CD patterns

    This update addresses common patterns such as running independent work in true parallel, starting and cleanly stopping background services, and initiating non-blocking work that continues while subsequent tasks progress.

Read the original announcement →

https://github.blog/changelog/2026-06-25-actions-steps-can-now-be-run-in-parallel