A workflow sets 'defaults.run.shell: bash' and 'defaults.run.working-directory: ./app' at the workflow level. A step overrides only 'working-directory: ./tools'. Which shell does that step use, and where does it run?
Select an answer to reveal the explanation.
Short Explanation and Infographic
defaults.run supplies shell and working-directory unless a step overrides a field. Overriding working-directory leaves the default shell in place.
Full explanation below image
Full Explanation
The 'defaults.run' block at workflow or job level sets default 'shell' and 'working-directory' for run steps. A step can override either property independently. If the step sets only working-directory, the shell from defaults still applies. Job-level defaults override workflow-level defaults for jobs that define them. defaults.run does not apply only to composite actions; it applies to workflow run steps (composite actions have their own shell requirements per step). Understanding merge behavior avoids surprises when a monorepo sets a global app working directory but a tooling step needs another folder.