Skip to content

Commit 5b33882

Browse files
Bootstrap YAMLScript track
0 parents  commit 5b33882

28 files changed

+882
-0
lines changed

.appends/.github/labels.yml

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# ----------------------------------------------------------------------------------------- #
2+
# These are the repository-specific labels that augment the Exercise-wide labels defined in #
3+
# https://github.com/exercism/org-wide-files/blob/main/global-files/.github/labels.yml. #
4+
# ----------------------------------------------------------------------------------------- #
5+
6+
- name: "duplicate"
7+
description: ""
8+
color: "cccccc"
9+
10+
- name: "enhancement"
11+
description: ""
12+
color: "84b6eb"
13+
14+
- name: "invalid"
15+
description: ""
16+
color: "e6e6e6"
17+
18+
- name: "needs maintainer"
19+
description: ""
20+
color: "fc2929"
21+
22+
- name: "new track"
23+
description: ""
24+
color: "159818"
25+
26+
- name: "question"
27+
description: ""
28+
color: "cc317c"
29+
30+
- name: "wontfix"
31+
description: ""
32+
color: "ffffff"

.gitattributes

+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Handle line endings automatically for files detected as text
2+
# and leave all files detected as binary untouched.
3+
* text=auto
4+
5+
# Force the following filetypes to have unix eols, so Windows does not break them
6+
*.* text eol=lf
7+
8+
# Windows forced line-endings
9+
/.idea/* text eol=crlf
10+
11+
# Custom for Visual Studio
12+
*.cs diff=csharp
13+
*.sln merge=union
14+
*.csproj merge=union
15+
*.vbproj merge=union
16+
*.fsproj merge=union
17+
*.dbproj merge=union
18+
19+
# Standard to msysgit
20+
*.doc diff=astextplain
21+
*.DOC diff=astextplain
22+
*.docx diff=astextplain
23+
*.DOCX diff=astextplain
24+
*.dot diff=astextplain
25+
*.DOT diff=astextplain
26+
*.pdf diff=astextplain
27+
*.PDF diff=astextplain
28+
*.rtf diff=astextplain
29+
*.RTF diff=astextplain
30+
31+
#
32+
## These files are binary and should be left untouched
33+
#
34+
35+
# (binary is a macro for -text -diff)
36+
*.png binary
37+
*.jpg binary
38+
*.jpeg binary
39+
*.gif binary
40+
*.ico binary
41+
*.mov binary
42+
*.mp4 binary
43+
*.mp3 binary
44+
*.flv binary
45+
*.fla binary
46+
*.swf binary
47+
*.gz binary
48+
*.zip binary
49+
*.7z binary
50+
*.ttf binary
51+
*.eot binary
52+
*.woff binary
53+
*.pyc binary
54+
*.pdf binary
55+
*.ez binary
56+
*.bz2 binary
57+
*.swp binary
58+
59+
*.tgz filter=lfs diff=lfs merge=lfs -text
60+
*.psd filter=lfs diff=lfs merge=lfs -text
61+
62+
# Force bash scripts to always use lf line endings so that if a repo is accessed
63+
# in Unix via a file share from Windows, the scripts will work.
64+
*.sh text eol=lf
65+
66+
# Force batch scripts to always use CRLF line endings so that if a repo is accessed
67+
# in Windows via a file share from Linux, the scripts will work.
68+
*.{cmd,[cC][mM][dD]} text eol=crlf
69+
*.{bat,[bB][aA][tT]} text eol=crlf

.github/CODEOWNERS

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Code owners
2+
.github/CODEOWNERS @exercism/maintainers-admin
3+
4+
# Changes to `fetch-configlet` should be made in the `exercism/configlet` repo
5+
bin/fetch-configlet @exercism/maintainers-admin
6+
bin/fetch-configlet.ps1 @exercism/maintainers-admin

.github/dependabot.yml

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
version: 2
2+
3+
updates:
4+
# Keep dependencies for GitHub Actions up-to-date
5+
- package-ecosystem: 'github-actions'
6+
directory: '/'
7+
schedule:
8+
interval: 'daily'
9+
labels:
10+
- 'x:size/small'

.github/labels.yml

+201
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,201 @@
1+
# --------------------------------------------------------------- #
2+
# This is an auto-generated file - Do not manually edit this file #
3+
# --------------------------------------------------------------- #
4+
5+
# This file is automatically generated by concatenating two files:
6+
#
7+
# 1. The Exercism-wide labels: defined in https://github.com/exercism/org-wide-files/blob/main/global-files/.github/labels.yml
8+
# 2. The repository-specific labels: defined in the `.appends/.github/labels.yml` file within this repository.
9+
#
10+
# If any of these two files change, a pull request is automatically created containing a re-generated version of this file.
11+
# Consequently, to change repository-specific labels you should update the `.appends/.github/labels.yml` file and _not_ this file.
12+
#
13+
# When the pull request has been merged, the GitHub labels will be automatically updated by the "Sync labels" workflow.
14+
# This typically takes 5-10 minutes.
15+
16+
# --------------------------------------------------------------------- #
17+
# These are the Exercism-wide labels which are shared across all repos. #
18+
# --------------------------------------------------------------------- #
19+
20+
# The following Exercism-wide labels are used to show "tasks" on the website, which will point users to things they can contribute to.
21+
22+
# The `x:action/<value>` labels describe what sort of work the contributor will be engaged in when working on the issue
23+
- name: "x:action/create"
24+
description: "Work on something from scratch"
25+
color: "ffffff"
26+
27+
- name: "x:action/fix"
28+
description: "Fix an issue"
29+
color: "ffffff"
30+
31+
- name: "x:action/improve"
32+
description: "Improve existing functionality/content"
33+
color: "ffffff"
34+
35+
- name: "x:action/proofread"
36+
description: "Proofread text"
37+
color: "ffffff"
38+
39+
- name: "x:action/sync"
40+
description: "Sync content with its latest version"
41+
color: "ffffff"
42+
43+
# The `x:knowledge/<value>` labels describe how much Exercism knowledge is required by the contributor
44+
- name: "x:knowledge/none"
45+
description: "No existing Exercism knowledge required"
46+
color: "ffffff"
47+
48+
- name: "x:knowledge/elementary"
49+
description: "Little Exercism knowledge required"
50+
color: "ffffff"
51+
52+
- name: "x:knowledge/intermediate"
53+
description: "Quite a bit of Exercism knowledge required"
54+
color: "ffffff"
55+
56+
- name: "x:knowledge/advanced"
57+
description: "Comprehensive Exercism knowledge required"
58+
color: "ffffff"
59+
60+
# The `x:module/<value>` labels indicate what part of Exercism the contributor will be working on
61+
- name: "x:module/analyzer"
62+
description: "Work on Analyzers"
63+
color: "ffffff"
64+
65+
- name: "x:module/concept"
66+
description: "Work on Concepts"
67+
color: "ffffff"
68+
69+
- name: "x:module/concept-exercise"
70+
description: "Work on Concept Exercises"
71+
color: "ffffff"
72+
73+
- name: "x:module/generator"
74+
description: "Work on Exercise generators"
75+
color: "ffffff"
76+
77+
- name: "x:module/practice-exercise"
78+
description: "Work on Practice Exercises"
79+
color: "ffffff"
80+
81+
- name: "x:module/representer"
82+
description: "Work on Representers"
83+
color: "ffffff"
84+
85+
- name: "x:module/test-runner"
86+
description: "Work on Test Runners"
87+
color: "ffffff"
88+
89+
# The `x:rep/<value>` labels describe the amount of reputation to award
90+
#
91+
# For more information on reputation and how these labels should be used,
92+
# check out https://exercism.org/docs/using/product/reputation
93+
- name: "x:rep/tiny"
94+
description: "Tiny amount of reputation"
95+
color: "ffffff"
96+
97+
- name: "x:rep/small"
98+
description: "Small amount of reputation"
99+
color: "ffffff"
100+
101+
- name: "x:rep/medium"
102+
description: "Medium amount of reputation"
103+
color: "ffffff"
104+
105+
- name: "x:rep/large"
106+
description: "Large amount of reputation"
107+
color: "ffffff"
108+
109+
- name: "x:rep/massive"
110+
description: "Massive amount of reputation"
111+
color: "ffffff"
112+
113+
# The `x:size/<value>` labels describe the expected amount of work for a contributor
114+
- name: "x:size/tiny"
115+
description: "Tiny amount of work"
116+
color: "ffffff"
117+
118+
- name: "x:size/small"
119+
description: "Small amount of work"
120+
color: "ffffff"
121+
122+
- name: "x:size/medium"
123+
description: "Medium amount of work"
124+
color: "ffffff"
125+
126+
- name: "x:size/large"
127+
description: "Large amount of work"
128+
color: "ffffff"
129+
130+
- name: "x:size/massive"
131+
description: "Massive amount of work"
132+
color: "ffffff"
133+
134+
# The `x:status/<value>` label indicates if there is already someone working on the issue
135+
- name: "x:status/claimed"
136+
description: "Someone is working on this issue"
137+
color: "ffffff"
138+
139+
# The `x:type/<value>` labels describe what type of work the contributor will be engaged in
140+
- name: "x:type/ci"
141+
description: "Work on Continuous Integration (e.g. GitHub Actions workflows)"
142+
color: "ffffff"
143+
144+
- name: "x:type/coding"
145+
description: "Write code that is not student-facing content (e.g. test-runners, generators, but not exercises)"
146+
color: "ffffff"
147+
148+
- name: "x:type/content"
149+
description: "Work on content (e.g. exercises, concepts)"
150+
color: "ffffff"
151+
152+
- name: "x:type/docker"
153+
description: "Work on Dockerfiles"
154+
color: "ffffff"
155+
156+
- name: "x:type/docs"
157+
description: "Work on Documentation"
158+
color: "ffffff"
159+
160+
# This Exercism-wide label is added to all automatically created pull requests that help migrate/prepare a track for Exercism v3
161+
- name: "v3-migration 🤖"
162+
description: "Preparing for Exercism v3"
163+
color: "e99695"
164+
165+
# This Exercism-wide label can be used to bulk-close issues in preparation for pausing community contributions
166+
- name: "paused"
167+
description: "Work paused until further notice"
168+
color: "e4e669"
169+
170+
# ----------------------------------------------------------------------------------------- #
171+
# These are the repository-specific labels that augment the Exercise-wide labels defined in #
172+
# https://github.com/exercism/org-wide-files/blob/main/global-files/.github/labels.yml. #
173+
# ----------------------------------------------------------------------------------------- #
174+
175+
- name: "duplicate"
176+
description: ""
177+
color: "cccccc"
178+
179+
- name: "enhancement"
180+
description: ""
181+
color: "84b6eb"
182+
183+
- name: "invalid"
184+
description: ""
185+
color: "e6e6e6"
186+
187+
- name: "needs maintainer"
188+
description: ""
189+
color: "fc2929"
190+
191+
- name: "new track"
192+
description: ""
193+
color: "159818"
194+
195+
- name: "question"
196+
description: ""
197+
color: "cc317c"
198+
199+
- name: "wontfix"
200+
description: ""
201+
color: "ffffff"

.github/workflows/configlet.yml

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
name: Configlet
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches:
7+
- main
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: read
12+
13+
jobs:
14+
configlet:
15+
uses: exercism/github-actions/.github/workflows/configlet.yml@main

.github/workflows/sync-labels.yml

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: Tools
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- .github/labels.yml
9+
- .github/workflows/sync-labels.yml
10+
workflow_dispatch:
11+
schedule:
12+
- cron: 0 0 1 * * # First day of each month
13+
14+
permissions:
15+
issues: write
16+
17+
jobs:
18+
sync-labels:
19+
uses: exercism/github-actions/.github/workflows/labels.yml@main

.github/workflows/test.yml

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# This workflow will do a clean install of the dependencies and run tests across different versions
2+
#
3+
# Replace <track> with the track name
4+
# Replace <image-name> with an image to run the jobs on
5+
# Replace <action to setup tooling> with a github action to setup tooling on the image
6+
# Replace <install dependencies> with a cli command to install the dependencies
7+
#
8+
# Find Github Actions to setup tooling here:
9+
# - https://github.com/actions/?q=setup&type=&language=
10+
# - https://github.com/actions/starter-workflows/tree/main/ci
11+
# - https://github.com/marketplace?type=actions&query=setup
12+
#
13+
# Requires scripts:
14+
# - bin/verify-exercises
15+
16+
name: <track> / Test
17+
18+
on:
19+
push:
20+
branches: [main]
21+
pull_request:
22+
workflow_dispatch:
23+
24+
jobs:
25+
ci:
26+
runs-on: <image-name>
27+
28+
steps:
29+
- name: Checkout repository
30+
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
31+
32+
- name: Use <setup tooling>
33+
uses: <action to setup tooling>
34+
35+
- name: Install project dependencies
36+
run: <install dependencies>
37+
38+
- name: Verify all exercises
39+
run: bin/verify-exercises

0 commit comments

Comments
 (0)