|
| 1 | +# Workflows |
| 2 | + |
| 3 | +GitHub Actions uses the concept of _workflows_, which are scripts that run automatically whenever a specific event occurs (e.g. pushing a commit). |
| 4 | + |
| 5 | +Each GitHub Actions workflow is defined in a `.yml` file in the `.github/workflows` directory. |
| 6 | +For information on workflows, check the following docs: |
| 7 | + |
| 8 | +- [Workflow syntax](https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions) |
| 9 | +- [Choosing when your workflow runs](https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/triggering-a-workflow) |
| 10 | +- [Choosing where your workflow runs](https://docs.github.com/en/actions/writing-workflows/choosing-where-your-workflow-runs) |
| 11 | +- [Choose what your workflow does](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does) |
| 12 | +- [Writing workflows](https://docs.github.com/en/actions/writing-workflows) |
| 13 | +- [Best practices](/docs/building/github/gha-best-practices) |
| 14 | + |
| 15 | +## Shared workflows |
| 16 | + |
| 17 | +Some workflows are shared across repositories. |
| 18 | +These workflows _should not be changed_. |
| 19 | + |
| 20 | +### General workflows |
| 21 | + |
| 22 | +- `sync-labels.yml`: automatically syncs the repository's labels from a `labels.yml` file |
| 23 | + |
| 24 | +### Track-specific workflows |
| 25 | + |
| 26 | +- `configlet.yml`: runs the [configlet tool](/docs/building/configlet), which checks if a track's (configuration) files are properly structured - both syntactically and semantically |
| 27 | +- `no-important-files-changed.yml`: checks if pull requests would cause all existing solutions of one or more changes exercises to be re-run |
| 28 | +- `test.yml`: verify the track's exercises |
| 29 | + |
| 30 | +### Tooling-specific workflows |
| 31 | + |
| 32 | +- `deploy.yml`: deploy the tooling Docker image to Docker Hub and ECR |
| 33 | + |
| 34 | +## Custom workflows |
| 35 | + |
| 36 | +Maintainers are free to add custom workflows to their repos. |
| 37 | +Examples of such workflows could be: |
| 38 | + |
| 39 | +- Linting of shell scripts ([example](https://github.com/exercism/configlet/blob/3baa09608c8ac327315c887608c13a68ae8ac359/.github/workflows/shellcheck.yml)) |
| 40 | +- Auto-commenting on pull requests ([example](https://github.com/exercism/elixir/blob/b737f80cc93fcfdec6c53acb7361819834782470/.github/workflows/pr-comment.yml)) |
| 41 | +- Etc. |
0 commit comments