GitHub Actions composite action "Required property is missing: shell" in CI
Composite actions do not inherit a default shell. Every run step inside an action.yml of runs.using: composite must declare shell:, or the action fails to load.
What this error means
Using a composite action fails with "Required property is missing: shell" pointing at a run step in the action manifest.
Error: .github/actions/setup/action.yml
(Line: 8, Col: 7): Required property is missing: shellCommon causes
A composite run step has no shell
Unlike workflow jobs, composite run steps have no default shell and must each set one.
Copied a workflow step into an action
A step moved from a workflow (which had a default shell) into a composite action loses that default.
How to fix it
Add shell to every composite run step
- Open the composite
action.yml. - Add
shell: bash(orpwsh,sh) to eachrunstep. - Re-run the workflow that uses the action.
runs:
using: composite
steps:
- run: echo "building"
shell: bashPick a shell available on the runner
Use bash on Linux/macOS, pwsh cross-platform, or cmd/powershell on Windows runners.
How to prevent it
- Always set
shellon compositerunsteps. - Lint the action manifest against the schema.
- Standardize on one shell across the action.