Creating workflow templates for your organization
Learn how you can create workflow templates to help people in your team add new workflows more easily.
In this article
Creating workflow templates
This procedure demonstrates how to create a workflow template and metadata file. The metadata file describes how the workflow templates will be presented to users when they are creating a new workflow.
-
If it doesn't already exist, create a new repository named
.githubin your organization. -
Create a directory named
workflow-templates. -
Create your new workflow file inside the
workflow-templatesdirectory.If you need to refer to a repository's default branch, you can use the
$default-branchplaceholder. When a workflow is created the placeholder will be automatically replaced with the name of the repository's default branch.For example, this file named
octo-organization-ci.ymldemonstrates a basic workflow.name: Octo Organization CI on: push: branches: [ $default-branch ] pull_request: branches: [ $default-branch ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - name: Run a one-line script run: echo Hello from Octo Organization -
Create a metadata file inside the
workflow-templatesdirectory. The metadata file must have the same name as the workflow file, but instead of the.ymlextension, it must be appended with.properties.json. For example, this file namedocto-organization-ci.properties.jsoncontains the metadata for a workflow file namedocto-organization-ci.yml:{ "name": "Octo Organization Workflow", "description": "Octo Organization CI workflow template.", "iconName": "example-icon", "categories": [ "Go" ], "filePatterns": [ "package.json$", "^Dockerfile", ".*\\.md$" ] }name- Required. The name of the workflow. This is displayed in the list of available workflows.description- Required. The description of the workflow. This is displayed in the list of available workflows.iconName- Optional. Specifies an icon for the workflow that is displayed in the list of workflows.iconNamecan be one of the following types:- An SVG file that is stored in the
workflow-templatesdirectory. To reference a file, the value must be the file name without the file extension. For example, an SVG file namedexample-icon.svgis referenced asexample-icon. - An icon from GitHub's set of Octicons. To reference an octicon, the value must be
octicon <icon name>. For example,octicon smiley.
- An SVG file that is stored in the
categories- Optional. Defines the categories that the workflow is shown under. You can use category names from the following lists:- General category names from the starter-workflows repository.
- Linguist languages from the list in the linguist repository.
- Supported tech stacks from the list in the starter-workflows repository.
filePatterns- Optional. Allows the workflow to be used if the user's repository has a file in its root directory that matches a defined regular expression.
-
To add another workflow template, add your files to the same
workflow-templatesdirectory.
Next steps
- For reference information about workflow templates, see Reusing workflow configurations.
