Starter Workflows
These are the workflow files for helping people get started with GitHub Actions. They're presented whenever you start to create a new GitHub Actions workflow.
If you want to get started with GitHub Actions, you can use these starter workflows by clicking the "Actions" tab in the repository where you want to create a workflow.
Directory structure
- automation: solutions for automating workflows.
- ci: solutions for Continuous Integration workflows.
- code-scanning: starter workflows for Code Scanning
- deployments: solutions for Deployment workflows.
- icons: svg icons for the relevant template
Each workflow must be written in YAML and have a .yml
extension. They also need a corresponding .properties.json
file that contains extra metadata about the workflow (this is displayed in the GitHub.com UI).
For example: ci/django.yml
and ci/properties/django.properties.json
.
Valid properties
name
: the name shown in onboarding. This property is unique within the repository.description
: the description shown in onboardingiconName
: the icon name in the relevant folder, for example,django
should have an iconicons/django.svg
. Only SVG is supported at this time. Another option is to use octicon. The format to use an octicon isocticon <<icon name>>
. Example:octicon person
creator
: creator of the template shown in onboarding. All the workflow templates from an author will have the samecreator
field.categories
: the categories that it will be shown under. Choose at least one category from the list here. Further, choose the categories from the list of languages available here. When a user views the available templates, those templates that match the same language will feature more prominently.
Categories
- automation
- ci
- code-quality
- code-review
- code-scanning
- continuous-integration
- dependency-management
- deployments
- monitoring
- testing
- utilities
Variables
These variables can be placed in the starter workflow and will be substituted as detailed below:
$default-branch
: will substitute the branch from the repository, for examplemain
andmaster
$protected-branches
: will substitute any protected branches from the repository$cron-daily
: will substitute a valid but random time within the day