GitHub Actions' reusability mechanisms are fragmented and poorly designed. There are two distinct approaches: Composite Actions (which combine multiple steps but not jobs, require explicit shell declarations, don't support secrets directly, and treat booleans as strings) and Reusable Workflows (which cannot call other reusable workflows, don't support matrix inputs, and have inconsistent input syntax between callable and dispatchable workflows). Additionally, GitHub Actions doesn't support standard YAML anchors/aliases, which would otherwise help reduce duplication. The post documents the quirks, limitations, and workarounds for each approach with code examples.

4m read timeFrom smcleod.net
Post cover image
Table of contents
Composite Actions #Reusable Workflows #(I Can’t Get No) YAML Anchors #

Sort: