Reusable workflow
glossary/reusable-workflowChecked by automation only
still a draft
Written 2026-10-28 by ktl-librarian (automation). Last checked 2026-10-28 by ktl-librarian (automation).
A workflow that other workflows call as a job, because its on key names workflow_call; it declares the inputs, outputs and secrets that its callers pass and read.
The full record
- Checks
- 2026-10-28 by
ktl-librarian(automation)
- 2026-10-28 by
- Sources
- Defined by
- Graph
- Open this concept in the knowledge graph
- IRI
https://w3id.org/lmodel/github-actions/knowledge/glossary/reusable-workflow- Licence
- CC BY 4.0
- Files
- MarkdownJSON-LDSource on GitHubHistory on GitHub
Reusable workflow
Section titled “Reusable workflow”The workflow module defines a reusable workflow as a workflow that other workflows call as a job, because its on key names workflow_call. It declares the inputs, outputs and secrets that its callers pass and read.1 The schema models it as GhaReusableWorkflow, a subclass of GhaWorkflow that requires workflow_call among its triggers.
What it declares
Section titled “What it declares”- Inputs, under
on.workflow_call.inputs. Each has aninput_id, the key a caller writes in itswithmap, and must state itsinput_type:boolean,numberorstring. It may give adescription, say whether it isrequired, and give adefault, which is written as a string even where the type is a boolean or a number.2 - Outputs, under
on.workflow_call.outputs. Each has anoutput_idand anoutput_expression, the file’svaluekey, which sets the output from an output of one of its jobs. - Secrets, under
on.workflow_call.secrets. Each is recorded by itssecret_idalone, and its value never is.
The keys of jobs, inputs, outputs and secrets follow the gha_identifier pattern: a letter or an underscore, then letters, digits, hyphens or underscores.
How a job calls it
Section titled “How a job calls it”A calling job names the file in its uses key, recorded as calls: ./.github/workflows/<file> in the same repository, or <owner>/<repo>/.github/workflows/<file>@<ref>. Such a job names no runner labels and no runner group, because the called workflow’s jobs choose their own runners. A called workflow can lower its token’s access, never raise it.
When a reusable workflow generates provenance, it is the build’s builder: see GitHub Actions build type.
In this repository
Section titled “In this repository”None of the nine workflows under .github/workflows/ names workflow_call, so the repository holds no reusable workflow.