feat: simplified format

manuel 2024-10-12 22:05:10 +08:00
parent ec661d6f82
commit 9e8cc4f84a

@ -7,6 +7,8 @@ Levels:
- assignment: eg. homework or project - assignment: eg. homework or project
- task: eg. exercise or milestone - task: eg. exercise or milestone
A task is composed of *stages* which themselves are composed of one or more *steps*.
## Background ## Background
Brief introduction to the structure of JOJ configuration and how it impacts students' submissions. Brief introduction to the structure of JOJ configuration and how it impacts students' submissions.
@ -54,6 +56,7 @@ It contains the part of the configuration that will be used globally for all ass
- `[repo]` table: general configuration parameters - `[repo]` table: general configuration parameters
- `max_size [float]`: maximum size allowed for a repo in MB - `max_size [float]`: maximum size allowed for a repo in MB
- `owners [array of string]`: TT members' jaccount - `owners [array of string]`: TT members' jaccount
- `release_tags [array of string]`: list of allowed release tags
- `[files]` table: file configuration parameters - `[files]` table: file configuration parameters
- `whitelist.patterns [array of string]`: patterns of files allowed in the repository - `whitelist.patterns [array of string]`: patterns of files allowed in the repository
- `whitelist.file [string]`: file containing student defined patterns of files. This option should not be enabled unless strictly necessary - `whitelist.file [string]`: file containing student defined patterns of files. This option should not be enabled unless strictly necessary
@ -74,6 +77,7 @@ It contains the part of the configuration that will be used globally for all ass
[repo] [repo]
owners = ["mac-wang", "jon-lee", "allen_wr"] # jaccounts owners = ["mac-wang", "jon-lee", "allen_wr"] # jaccounts
max_size = 5 # repo max size in MB max_size = 5 # repo max size in MB
release_tags = ["h1", "h2", "h3"] # list of valid release tags
# files section # files section
# file related global parameters for the whole repo # file related global parameters for the whole repo
@ -94,16 +98,18 @@ share back with students.
### General options ### General options
- global setup - Global setup
- `task [string]`: name the task (eg. an exercise or project milestone) - `task [string]`: name the task (eg. an exercise or project milestone)
- `stages [array of string]`: list all stages run for this task - `stages [array of string]`: list all stages run for this task
- `[stage]` table: configuration for `stage` stage - `[stage]` table: configuration for `stage` stage
- `command [string]`: command to run for `compile` stage - `command [string]`: command to run for `compile` stage
- `file.input [array of string]`: list of files to copy to ensure command runs as expected (eg. - `file.input [array of string]`: list of files to copy to ensure command runs as expected (eg.
driver and header files needed for compilation) driver and header files needed for compilation)
- `parsers [array of string]`: list of parser to run on the result of command. - `parsers [array of string]`: list of parsers to run on the result of command
- `[[stages]] [array of table]`: configuration for a list of similar stages (eg. code quality stages) - `limit.cpu [int]`: maximum running time for the stage or step in sec
- `[[steps]] [array of table]`: configuration for list of similar steps (eg. test cases for the online judge) - `limit.mem [int]`: maximum amount of RAM allowed for stage of step in MB
- `[[stages]] [array of table]`: individual configuration for a group of similar stages (eg. code quality stages)
- `[[steps]] [array of table]`: individual configuration for a list of similar steps (eg. test cases for the online judge)
### Parsers ### Parsers
@ -124,7 +130,7 @@ Currently the following parsers are available:
Note that parsers can be combined. For instance one might want to show the `diff`, `stat`, and `stderr` Note that parsers can be combined. For instance one might want to show the `diff`, `stat`, and `stderr`
outputs for the online judge. outputs for the online judge.
Parser can also be further configured. Some parsers can also be further configured.
<details><summary>Sample task.toml</summary> <details><summary>Sample task.toml</summary>