Skip to content

Commit 4578628

Browse files
Improve CI docs (#555)
* Improve CI docs * More dos * More docs * Link
1 parent f9877da commit 4578628

File tree

4 files changed

+186
-141
lines changed

4 files changed

+186
-141
lines changed

building/config.json

+6
Original file line numberDiff line numberDiff line change
@@ -661,6 +661,12 @@
661661
"path": "building/tracks/stories/tuples.santas-helper.md",
662662
"title": "Santa's Helper"
663663
},
664+
{
665+
"uuid": "b99fb54b-a9ce-4a50-bca4-6a928cc77ec6",
666+
"slug": "tracks/ci/workflows",
667+
"path": "building/tracks/ci/workflows.md",
668+
"title": "Workflows"
669+
},
664670
{
665671
"uuid": "191b0fa1-96e2-48a6-ad2e-c34f57443799",
666672
"slug": "tracks/ci/migrating-from-travis",

building/tracks/ci/README.md

+5
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,8 @@
22

33
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.
44
This includes running tests, formatting things, and deploying things.
5+
6+
For more information, check:
7+
8+
- [Workflows](/docs/building/tracks/ci/workflows)
9+
- [Setting up CI for new tracks](/docs/building/tracks/new/setup-continuous-integration)

building/tracks/ci/workflows.md

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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

Comments
 (0)