Key Takeaways
- GitHub Actions' new
background,wait,cancel, andparallelkeywords 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.waittargets specific steps,wait-allwaits 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-inwaitafter 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
# 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
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, andparallelkeywords."
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
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
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
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
- Why Your CLAUDE.md Needs a 'No npm install' Rule for Open Source Repos
- MCP Hits 10K Servers, 97M Monthly SDK Downloads by May 2026
Update your .github/workflows/*.yml files today and prompt Claude to parallelize your CI/CD pipelines.
Source: github.blog








