Starter Workflows
This repository contains starter workflow templates that help users get started with GitHub Actions. These templates are presented when you create a new GitHub Actions workflow from the Actions tab in a repository.

Contributions and Support
Thank you for your interest in this repository.
At this time, we are not accepting contributions. GitHub continues to focus its resources on strategic areas of GitHub Actions that help customers succeed and improve the developer experience.
The GitHub Public Roadmap is the recommended place to follow updates about GitHub Actions features and their development status.
We are taking the following steps to direct requests appropriately:
Questions and support requests Please use the GitHub Community Discussions — Actions.
High-priority bugs Report high-priority bugs through Community Discussions or contact GitHub Support using the bug report form.
Security issues Please follow the instructions in security.md.
We will continue to provide security updates for this project and address major breaking changes when necessary.
You are still welcome to report bugs in this repository.
Directory Structure
agentic — Starter workflows for agentic solutions
ci — Continuous integration workflows
deployments — Deployment workflows
automation — Workflow automation
code-scanning — Workflows for Code Scanning
pages — GitHub Pages workflows
icons — SVG icons used by workflow templates
Each starter workflow must:
Be written in YAML.
Use the .yml file extension.
Have a corresponding .properties.json metadata file.
For example:
ci/django.yml ci/properties/django.properties.json
Workflow Metadata
Each workflow's .properties.json file can contain the following properties:
name — The name displayed during workflow onboarding. This must be unique within the repository.
description — A description displayed during onboarding.
iconName — The icon associated with the template. For example, a template named django can use icons/django.svg. SVG is currently supported. Octicons can also be used with the format octicon , such as octicon person.
creator — The creator displayed during onboarding. Templates from the same author should use the same creator value.
categories — Categories used to organize and surface templates. At least one supported category must be specified. Language and technology-stack categories can also be used to improve template discoverability.
Categories
Supported categories include:
Agentic
continuous-integration
deployment
testing
code-quality
code-review
dependency-management
monitoring
Automation
utilities
Pages
Hugo
Variables
The following variables can be used in starter workflows. They are substituted automatically when the template is processed:
$default-branch — The repository's default branch, such as main or master.
$protected-branches — Protected branches configured for the repository.
$cron-daily — A valid, randomly selected time during the day for scheduled workflows.
Testing Templates Before Publishing
Disable a Template for Public Use
To prevent a template from appearing publicly while it is being tested, add a labels array containing the preview label to its properties.json file.
For example:
{ "name": "Node.js", "description": "Build and test a Node.js project with npm.", "iconName": "nodejs", "categories": [ "Continuous integration", "JavaScript", "npm", "React", "Angular", "Vue" ], "labels": [ "preview" ] }
Templates marked with preview are hidden from normal users.
To view preview templates, add preview=true to the New workflow page:
https://github.com//<repo_name>/actions/new?preview=true
Publish a Template
When the template is ready for public use, remove the labels property containing preview from its properties.json file.
The template will then be eligible to appear publicly in the starter workflow catalog.