diff --git a/building/config.json b/building/config.json index 32741015..07f2db76 100644 --- a/building/config.json +++ b/building/config.json @@ -820,6 +820,13 @@ "title": "Snippet Extractor", "blurb": "" }, + { + "uuid": "0d24b14c-8995-4ca5-8e5f-6ca2dcc5318c", + "slug": "tooling/cli", + "path": "building/tooling/cli.md", + "title": "Exercism CLI", + "blurb": "" + }, { "uuid": "ba393f61-0f7d-4178-922a-c16cda052338", "slug": "tooling/test-generators", diff --git a/building/tooling/cli.md b/building/tooling/cli.md new file mode 100644 index 00000000..83d79b13 --- /dev/null +++ b/building/tooling/cli.md @@ -0,0 +1,22 @@ +# Exercism CLI + +The [Exercism CLI][cli] lets students download exercises and submit solutions to the site. +It also supports the `exercism test` command, which then runs the track-specific command to run the tests. + +## Adding new language + +The track-specific test commands are defined in a [configuration file][test-configurations]. +You can add support for your language by adding an entry to that [configuration file][test-configurations], where the key is the track's slug. + +### Test command placeholders + +There are two placeholders that can be used in the track-specific command: + +- `{{test_files}}`: a space-separated list of the test files (as found in the `.files.test` key in the exercise's `.meta/config.json` file) +- `{{solution_files}}`: a space-separated list of the solution files (as found in the `.files.solution` key in the exercise's `.meta/config.json` file) + +Here is an [example pull request][example-pr] that adds support for the Arturo language. + +[cli]: https://github.com/exercism/cli +[example-pr]: https://github.com/exercism/cli/pull/1147/files +[test-configurations]: https://github.com/exercism/cli/blob/main/workspace/test_configurations.go#L63 diff --git a/building/tracks/new/configure-tooling.md b/building/tracks/new/configure-tooling.md index 1f43e501..0def4268 100644 --- a/building/tracks/new/configure-tooling.md +++ b/building/tracks/new/configure-tooling.md @@ -1,8 +1,9 @@ # Configure tooling -There are two bits of tooling that you can optionally tweak for your track: +There are three bits of tooling that you can optionally tweak for your track: - The **[Lines of Code Counter](/docs/building/tooling/lines-of-code-counter)** - The **[Snippet Extractor](/docs/building/tooling/snippet-extractor)** +- The **[Exercism CLI](/docs/building/tooling/cli)** While tweaking these tools is optional, doing so can make your track's integration into the website just _that_ bit better.