You need a reusable unit that runs several shell steps, shares the runner workspace, and avoids building a container image. Which action type fits best?
Select an answer to reveal the explanation.
Short Explanation and Infographic
Composite actions bundle multiple run/uses steps in the caller job's environment without a custom Docker image.
Full explanation below image
Full Explanation
Composite actions are ideal for shell-centric shared logic, setup sequences, and thin wrappers around CLIs. Docker actions package a fixed image—powerful for isolation and non-runner OS tools, but heavier. JavaScript actions suit Node-based logic and toolkit APIs. Reusable workflows orchestrate whole jobs (and can use runners/services) but are not step-level uses inside a job the same way. Service containers are sidecars, not reusable step packs. Choose composite for DRY step groups; choose reusable workflows for multi-job pipelines.