DEV Community

gentic news
gentic news

Posted on • Originally published at gentic.news

GitHub Actions Now Runs Steps in Parallel — Here's How to Use It with

GitHub Actions' new background, wait, cancel, and parallel keywords let you run steps concurrently. Update your CI/CD workflows to cut job times.

Key Takeaways

  • GitHub Actions' new background, wait, cancel, and parallel keywords let you run steps concurrently.
  • Update your CI/CD workflows to cut job times.

What Changed — Parallel Steps in GitHub Actions

GitHub Actions now supports running steps concurrently within a single job. Previously, steps always ran sequentially — each waited for the previous to finish. You could hack around this with shell backgrounding (&), but logs got interleaved and control was messy.

Now, four new keywords are available:

  • background: true — Runs a step asynchronously; execution immediately continues to the next step.
  • wait / wait-all — Pauses execution until one or more named background steps complete. wait targets specific steps, wait-all waits for all prior background steps.
  • cancel — Gracefully terminates a background step when you no longer need it.
  • parallel — Takes a group of steps and runs them concurrently, with a built-in wait after the group completes.

What It Means For You — Faster CI/CD with Claude Code

If you use Claude Code to generate or maintain GitHub Actions workflows, this update is a direct lever for speed. You can now:

  • Run multiple builds in parallel — e.g., build for Linux, macOS, and Windows simultaneously within a single job, instead of using a matrix strategy with separate runners.
  • Start background services — Spin up a database or mock server, run tests, then cleanly tear down the service — all in one job.
  • Fire-and-forget telemetry — Kick off a non-blocking upload while the main workflow continues.

For Claude Code users, this means you can prompt Claude to generate more efficient workflows. For example:

# Old sequential approach
- name: Build Linux
  run: make build-linux
- name: Build macOS
  run: make build-macos
Enter fullscreen mode Exit fullscreen mode
# New parallel approach
- name: Build Linux
  run: make build-linux
  background: true
- name: Build macOS
  run: make build-macos
  background: true
- name: Wait for builds
  run: echo "Builds complete"
  wait-all: true
Enter fullscreen mode Exit fullscreen mode

Try It Now — Commands and Config for Claude Code

1. Prompt Claude to refactor existing workflows

Add this to your CLAUDE.md or prompt Claude directly:

"Refactor this GitHub Actions workflow to use parallel steps where possible. Use background, wait, cancel, and parallel keywords."

Claude will analyze your workflow and suggest changes. Example output:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run linting
        run: npm run lint
        background: true
      - name: Run unit tests
        run: npm test
        background: true
      - name: Run integration tests
        run: npm run test:integration
        background: true
      - name: Wait for all tests
        run: echo "All tests passed"
        wait-all: true
      - name: Build
        run: npm run build
Enter fullscreen mode Exit fullscreen mode

2. Use parallel for syntactic sugar

For a group of steps that should all run concurrently, use the parallel block:

- name: Run all checks
  parallel:
    - name: Lint
      run: npm run lint
    - name: Type check
      run: npx tsc --noEmit
    - name: Unit tests
      run: npm test
  # No explicit wait needed — parallel handles it
Enter fullscreen mode Exit fullscreen mode

3. Background service pattern

Start a database, run tests, then stop it cleanly:

- name: Start PostgreSQL
  run: docker compose up -d db
  background: true
- name: Wait for DB
  run: until pg_isready; do sleep 1; done
  wait: Start PostgreSQL
- name: Run migrations
  run: npx prisma migrate deploy
- name: Run tests
  run: npm test
- name: Stop PostgreSQL
  run: docker compose down
  cancel: Start PostgreSQL
Enter fullscreen mode Exit fullscreen mode

Why This Matters for Claude Code Users

GitHub Actions is the CI/CD backbone for many Claude Code projects — especially when Claude generates or modifies workflows during a session. By understanding these new keywords, you can:

  • Reduce job duration by running independent steps concurrently.
  • Simplify multi-service setups in a single job (no more separate jobs for DB + tests).
  • Generate more idiomatic workflows with Claude, since you can now specify parallel execution patterns.

Related Reading

Update your .github/workflows/*.yml files today and prompt Claude to parallelize your CI/CD pipelines.


Source: github.blog


Originally published on gentic.news

Top comments (0)