Skip to content

Commit

Permalink
Improve CI docs (#555)
Browse files Browse the repository at this point in the history
* Improve CI docs

* More dos

* More docs

* Link
  • Loading branch information
ErikSchierboom authored Aug 13, 2024
1 parent f9877da commit 4578628
Show file tree
Hide file tree
Showing 4 changed files with 186 additions and 141 deletions.
6 changes: 6 additions & 0 deletions building/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -661,6 +661,12 @@
"path": "building/tracks/stories/tuples.santas-helper.md",
"title": "Santa's Helper"
},
{
"uuid": "b99fb54b-a9ce-4a50-bca4-6a928cc77ec6",
"slug": "tracks/ci/workflows",
"path": "building/tracks/ci/workflows.md",
"title": "Workflows"
},
{
"uuid": "191b0fa1-96e2-48a6-ad2e-c34f57443799",
"slug": "tracks/ci/migrating-from-travis",
Expand Down
5 changes: 5 additions & 0 deletions building/tracks/ci/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,8 @@

At Exercism, we use [GitHub Actions](https://github.com/features/actions) to handle our [continuous integration](https://en.wikipedia.org/wiki/Continuous_integration) (CI) and [continuous deployment](https://en.wikipedia.org/wiki/Continuous_deployment) (CD) needs.
This includes running tests, formatting things, and deploying things.

For more information, check:

- [Workflows](/docs/building/tracks/ci/workflows)
- [Setting up CI for new tracks](/docs/building/tracks/new/setup-continuous-integration)
41 changes: 41 additions & 0 deletions building/tracks/ci/workflows.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Workflows

GitHub Actions uses the concept of _workflows_, which are scripts that run automatically whenever a specific event occurs (e.g. pushing a commit).

Each GitHub Actions workflow is defined in a `.yml` file in the `.github/workflows` directory.
For information on workflows, check the following docs:

- [Workflow syntax](https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions)
- [Choosing when your workflow runs](https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/triggering-a-workflow)
- [Choosing where your workflow runs](https://docs.github.com/en/actions/writing-workflows/choosing-where-your-workflow-runs)
- [Choose what your workflow does](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does)
- [Writing workflows](https://docs.github.com/en/actions/writing-workflows)
- [Best practices](/docs/building/github/gha-best-practices)

## Shared workflows

Some workflows are shared across repositories.
These workflows _should not be changed_.

### General workflows

- `sync-labels.yml`: automatically syncs the repository's labels from a `labels.yml` file

### Track-specific workflows

- `configlet.yml`: runs the [configlet tool](/docs/building/configlet), which checks if a track's (configuration) files are properly structured - both syntactically and semantically
- `no-important-files-changed.yml`: checks if pull requests would cause all existing solutions of one or more changes exercises to be re-run
- `test.yml`: verify the track's exercises

### Tooling-specific workflows

- `deploy.yml`: deploy the tooling Docker image to Docker Hub and ECR

## Custom workflows

Maintainers are free to add custom workflows to their repos.
Examples of such workflows could be:

- Linting of shell scripts ([example](https://github.com/exercism/configlet/blob/3baa09608c8ac327315c887608c13a68ae8ac359/.github/workflows/shellcheck.yml))
- Auto-commenting on pull requests ([example](https://github.com/exercism/elixir/blob/b737f80cc93fcfdec6c53acb7361819834782470/.github/workflows/pr-comment.yml))
- Etc.
Loading

0 comments on commit 4578628

Please sign in to comment.