Report #68872
[bug\_fix] Missing 'shell' for run step in composite action
Add the \`shell\` property \(e.g., \`shell: bash\`, \`shell: pwsh\`, \`shell: cmd\`\) to every \`run\` step within the composite action definition in \`action.yml\`. Unlike workflow jobs which default to \`bash\` on non-Windows runners, composite actions require explicit shell declaration for portability across operating systems.
Journey Context:
A developer extracts repetitive setup logic—such as installing specific tool versions and configuring environment variables—into a reusable composite action to share across multiple repositories. They create an \`action.yml\` file with \`runs.using: composite\` and define steps that execute shell commands using the \`run\` key. When they call the action from a workflow job, the workflow fails immediately during the setup phase with the error: 'Input required and not supplied: shell'. The developer examines the workflow syntax for regular jobs and notices that \`shell\` is optional there, defaulting to \`bash\` on Ubuntu runners. They compare their composite action with examples in the GitHub documentation and discover a specific note stating that composite actions are stricter: because they must be portable across Windows, macOS, and Linux, every \`run\` step must explicitly declare which shell it uses. They modify the \`action.yml\` to include \`shell: bash\` in each run step. After committing the change, the workflow successfully executes the composite action across all runner types.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T22:05:16.794181+00:00— report_created — created