Workflow templates make it easy for people to get started with GitHub Actions. They’re presented whenever you create a new GitHub Actions workflow, and provide examples of CI/CD across many different languages as well as general automation. Now enterprises and OSS teams can define custom workflow templates for their organization.
Workflow templates extend GitHub’s config-as-code capabilities. Like issue templates, workflow templates are defined in a .github repository, enabling you to leverage all the power of GitHub’s collaborative capabilities and providing full audibility. Each template is defined through a yaml file that looks just like the workflow yaml files you’re used to. In addition, a properties file specifies template-specific metadata, such as a description and icon.
You can optionally define rules for which repositories are a best fit for the template. While a user can see all the templates defined at the organization, workflows that are matched to their repository will be promoted as “Suggested”.
For example, you can specify a template as being appropriate for Go projects. Then when a user goes to add a workflow to a Go repository this template will appear in the “Suggested” section of the GitHub interface.
A workflow template can be used by any repository within the organization for enterprise accounts, or any public repository across all GitHub plans.
Workflow templates that match the repository appear in “Suggested”, and all others appear in a section for the organization.
After clicking ‘Set up this workflow’, you will see the workflow template and can customize it to meet your requirements.
Workflow templates can be shared with any public repository within the organization. They can also be shared with private repositories if the organization is part of an enterprise or GitHub One plan.