Skip to content

Commit

Permalink
Bootstrap Odin track
Browse files Browse the repository at this point in the history
  • Loading branch information
ErikSchierboom committed Sep 27, 2023
0 parents commit 7eea305
Show file tree
Hide file tree
Showing 28 changed files with 875 additions and 0 deletions.
32 changes: 32 additions & 0 deletions .appends/.github/labels.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# ----------------------------------------------------------------------------------------- #
# These are the repository-specific labels that augment the Exercise-wide labels defined in #
# https://github.com/exercism/org-wide-files/blob/main/global-files/.github/labels.yml. #
# ----------------------------------------------------------------------------------------- #

- name: "duplicate"
description: ""
color: "cccccc"

- name: "enhancement"
description: ""
color: "84b6eb"

- name: "invalid"
description: ""
color: "e6e6e6"

- name: "needs maintainer"
description: ""
color: "fc2929"

- name: "new track"
description: ""
color: "159818"

- name: "question"
description: ""
color: "cc317c"

- name: "wontfix"
description: ""
color: "ffffff"
69 changes: 69 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Handle line endings automatically for files detected as text
# and leave all files detected as binary untouched.
* text=auto

# Force the following filetypes to have unix eols, so Windows does not break them
*.* text eol=lf

# Windows forced line-endings
/.idea/* text eol=crlf

# Custom for Visual Studio
*.cs diff=csharp
*.sln merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union

# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain

#
## These files are binary and should be left untouched
#

# (binary is a macro for -text -diff)
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.mov binary
*.mp4 binary
*.mp3 binary
*.flv binary
*.fla binary
*.swf binary
*.gz binary
*.zip binary
*.7z binary
*.ttf binary
*.eot binary
*.woff binary
*.pyc binary
*.pdf binary
*.ez binary
*.bz2 binary
*.swp binary

*.tgz filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text

# Force bash scripts to always use lf line endings so that if a repo is accessed
# in Unix via a file share from Windows, the scripts will work.
*.sh text eol=lf

# Force batch scripts to always use CRLF line endings so that if a repo is accessed
# in Windows via a file share from Linux, the scripts will work.
*.{cmd,[cC][mM][dD]} text eol=crlf
*.{bat,[bB][aA][tT]} text eol=crlf
6 changes: 6 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Code owners
.github/CODEOWNERS @exercism/maintainers-admin

# Changes to `fetch-configlet` should be made in the `exercism/configlet` repo
bin/fetch-configlet @exercism/maintainers-admin
bin/fetch-configlet.ps1 @exercism/maintainers-admin
10 changes: 10 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
version: 2

updates:
# Keep dependencies for GitHub Actions up-to-date
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'daily'
labels:
- 'x:size/small'
201 changes: 201 additions & 0 deletions .github/labels.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
# --------------------------------------------------------------- #
# This is an auto-generated file - Do not manually edit this file #
# --------------------------------------------------------------- #

# This file is automatically generated by concatenating two files:
#
# 1. The Exercism-wide labels: defined in https://github.com/exercism/org-wide-files/blob/main/global-files/.github/labels.yml
# 2. The repository-specific labels: defined in the `.appends/.github/labels.yml` file within this repository.
#
# If any of these two files change, a pull request is automatically created containing a re-generated version of this file.
# Consequently, to change repository-specific labels you should update the `.appends/.github/labels.yml` file and _not_ this file.
#
# When the pull request has been merged, the GitHub labels will be automatically updated by the "Sync labels" workflow.
# This typically takes 5-10 minutes.

# --------------------------------------------------------------------- #
# These are the Exercism-wide labels which are shared across all repos. #
# --------------------------------------------------------------------- #

# The following Exercism-wide labels are used to show "tasks" on the website, which will point users to things they can contribute to.

# The `x:action/<value>` labels describe what sort of work the contributor will be engaged in when working on the issue
- name: "x:action/create"
description: "Work on something from scratch"
color: "ffffff"

- name: "x:action/fix"
description: "Fix an issue"
color: "ffffff"

- name: "x:action/improve"
description: "Improve existing functionality/content"
color: "ffffff"

- name: "x:action/proofread"
description: "Proofread text"
color: "ffffff"

- name: "x:action/sync"
description: "Sync content with its latest version"
color: "ffffff"

# The `x:knowledge/<value>` labels describe how much Exercism knowledge is required by the contributor
- name: "x:knowledge/none"
description: "No existing Exercism knowledge required"
color: "ffffff"

- name: "x:knowledge/elementary"
description: "Little Exercism knowledge required"
color: "ffffff"

- name: "x:knowledge/intermediate"
description: "Quite a bit of Exercism knowledge required"
color: "ffffff"

- name: "x:knowledge/advanced"
description: "Comprehensive Exercism knowledge required"
color: "ffffff"

# The `x:module/<value>` labels indicate what part of Exercism the contributor will be working on
- name: "x:module/analyzer"
description: "Work on Analyzers"
color: "ffffff"

- name: "x:module/concept"
description: "Work on Concepts"
color: "ffffff"

- name: "x:module/concept-exercise"
description: "Work on Concept Exercises"
color: "ffffff"

- name: "x:module/generator"
description: "Work on Exercise generators"
color: "ffffff"

- name: "x:module/practice-exercise"
description: "Work on Practice Exercises"
color: "ffffff"

- name: "x:module/representer"
description: "Work on Representers"
color: "ffffff"

- name: "x:module/test-runner"
description: "Work on Test Runners"
color: "ffffff"

# The `x:rep/<value>` labels describe the amount of reputation to award
#
# For more information on reputation and how these labels should be used,
# check out https://exercism.org/docs/using/product/reputation
- name: "x:rep/tiny"
description: "Tiny amount of reputation"
color: "ffffff"

- name: "x:rep/small"
description: "Small amount of reputation"
color: "ffffff"

- name: "x:rep/medium"
description: "Medium amount of reputation"
color: "ffffff"

- name: "x:rep/large"
description: "Large amount of reputation"
color: "ffffff"

- name: "x:rep/massive"
description: "Massive amount of reputation"
color: "ffffff"

# The `x:size/<value>` labels describe the expected amount of work for a contributor
- name: "x:size/tiny"
description: "Tiny amount of work"
color: "ffffff"

- name: "x:size/small"
description: "Small amount of work"
color: "ffffff"

- name: "x:size/medium"
description: "Medium amount of work"
color: "ffffff"

- name: "x:size/large"
description: "Large amount of work"
color: "ffffff"

- name: "x:size/massive"
description: "Massive amount of work"
color: "ffffff"

# The `x:status/<value>` label indicates if there is already someone working on the issue
- name: "x:status/claimed"
description: "Someone is working on this issue"
color: "ffffff"

# The `x:type/<value>` labels describe what type of work the contributor will be engaged in
- name: "x:type/ci"
description: "Work on Continuous Integration (e.g. GitHub Actions workflows)"
color: "ffffff"

- name: "x:type/coding"
description: "Write code that is not student-facing content (e.g. test-runners, generators, but not exercises)"
color: "ffffff"

- name: "x:type/content"
description: "Work on content (e.g. exercises, concepts)"
color: "ffffff"

- name: "x:type/docker"
description: "Work on Dockerfiles"
color: "ffffff"

- name: "x:type/docs"
description: "Work on Documentation"
color: "ffffff"

# This Exercism-wide label is added to all automatically created pull requests that help migrate/prepare a track for Exercism v3
- name: "v3-migration 🤖"
description: "Preparing for Exercism v3"
color: "e99695"

# This Exercism-wide label can be used to bulk-close issues in preparation for pausing community contributions
- name: "paused"
description: "Work paused until further notice"
color: "e4e669"

# ----------------------------------------------------------------------------------------- #
# These are the repository-specific labels that augment the Exercise-wide labels defined in #
# https://github.com/exercism/org-wide-files/blob/main/global-files/.github/labels.yml. #
# ----------------------------------------------------------------------------------------- #

- name: "duplicate"
description: ""
color: "cccccc"

- name: "enhancement"
description: ""
color: "84b6eb"

- name: "invalid"
description: ""
color: "e6e6e6"

- name: "needs maintainer"
description: ""
color: "fc2929"

- name: "new track"
description: ""
color: "159818"

- name: "question"
description: ""
color: "cc317c"

- name: "wontfix"
description: ""
color: "ffffff"
15 changes: 15 additions & 0 deletions .github/workflows/configlet.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: Configlet

on:
pull_request:
push:
branches:
- main
workflow_dispatch:

permissions:
contents: read

jobs:
configlet:
uses: exercism/github-actions/.github/workflows/configlet.yml@main
19 changes: 19 additions & 0 deletions .github/workflows/sync-labels.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Tools

on:
push:
branches:
- main
paths:
- .github/labels.yml
- .github/workflows/sync-labels.yml
workflow_dispatch:
schedule:
- cron: 0 0 1 * * # First day of each month

permissions:
issues: write

jobs:
sync-labels:
uses: exercism/github-actions/.github/workflows/labels.yml@main
39 changes: 39 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# This workflow will do a clean install of the dependencies and run tests across different versions
#
# Replace <track> with the track name
# Replace <image-name> with an image to run the jobs on
# Replace <action to setup tooling> with a github action to setup tooling on the image
# Replace <install dependencies> with a cli command to install the dependencies
#
# Find Github Actions to setup tooling here:
# - https://github.com/actions/?q=setup&type=&language=
# - https://github.com/actions/starter-workflows/tree/main/ci
# - https://github.com/marketplace?type=actions&query=setup
#
# Requires scripts:
# - bin/test

name: <track> / Test

on:
push:
branches: [main]
pull_request:
workflow_dispatch:

jobs:
ci:
runs-on: <image-name>

steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Use <setup tooling>
uses: <action to setup tooling>

- name: Install project dependencies
run: <install dependencies>

- name: Verify all exercises
run: bin/verify-exercises
Loading

0 comments on commit 7eea305

Please sign in to comment.