feat: rough distrubte json function
This commit is contained in:
		
							parent
							
								
									b755efac6d
								
							
						
					
					
						commit
						b298a2ac3a
					
				|  | @ -1,4 +1,8 @@ | ||||||
| from typing import List | import json | ||||||
|  | import os | ||||||
|  | from typing import Any, List | ||||||
|  | 
 | ||||||
|  | import rtoml | ||||||
| 
 | 
 | ||||||
| from joj3_config_generator.models import joj1, repo, result, task | from joj3_config_generator.models import joj1, repo, result, task | ||||||
| from joj3_config_generator.processers.repo import ( | from joj3_config_generator.processers.repo import ( | ||||||
|  | @ -90,3 +94,25 @@ def convert_joj1(joj1_conf: joj1.Config) -> task.Config: | ||||||
|         release=task.Release(deadline=release_deadline), |         release=task.Release(deadline=release_deadline), | ||||||
|         stages=stages, |         stages=stages, | ||||||
|     ) |     ) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | def distribute_json(folder_path: str, repo_obj: Any) -> None: | ||||||
|  |     for root, _, files in os.walk(folder_path): | ||||||
|  |         for file in files: | ||||||
|  |             if file.endswith(".toml"): | ||||||
|  |                 toml_file_path = os.path.join(root, file) | ||||||
|  |                 json_file_path = os.path.join(root, file.replace(".toml", ".json")) | ||||||
|  |                 with open(toml_file_path) as toml_file: | ||||||
|  |                     task_toml = toml_file.read() | ||||||
|  |                 task_obj = rtoml.loads(task_toml) | ||||||
|  |                 result_model = convert(repo.Config(**repo_obj), task.Config(**task_obj)) | ||||||
|  |                 result_dict = result_model.model_dump(by_alias=True, exclude_none=True) | ||||||
|  | 
 | ||||||
|  |                 with open(json_file_path, "w") as result_file: | ||||||
|  |                     json.dump(result_dict, result_file, ensure_ascii=False, indent=4) | ||||||
|  |                     result_file.write("\n") | ||||||
|  |                     print(f"Successfully convert {toml_file_path} into json!") | ||||||
|  |                     assert os.path.exists( | ||||||
|  |                         json_file_path | ||||||
|  |                     ), f"Failed to convert {toml_file_path} into json!" | ||||||
|  |     return 0 | ||||||
|  |  | ||||||
|  | @ -10,6 +10,7 @@ import yaml | ||||||
| 
 | 
 | ||||||
| from joj3_config_generator.convert import convert as convert_conf | from joj3_config_generator.convert import convert as convert_conf | ||||||
| from joj3_config_generator.convert import convert_joj1 as convert_joj1_conf | from joj3_config_generator.convert import convert_joj1 as convert_joj1_conf | ||||||
|  | from joj3_config_generator.convert import distribute_json | ||||||
| from joj3_config_generator.models import joj1, repo, task | from joj3_config_generator.models import joj1, repo, task | ||||||
| from joj3_config_generator.utils.logger import logger | from joj3_config_generator.utils.logger import logger | ||||||
| 
 | 
 | ||||||
|  | @ -69,4 +70,9 @@ def convert(root: Path = Path(".")) -> Dict[str, Any]: | ||||||
|         json.dump(result_dict, result_file, ensure_ascii=False, indent=4) |         json.dump(result_dict, result_file, ensure_ascii=False, indent=4) | ||||||
|         result_file.write("\n") |         result_file.write("\n") | ||||||
| 
 | 
 | ||||||
|  |     # FIXME: change the path to the server | ||||||
|  |     homework_name = "h8" | ||||||
|  |     folder_path = f"/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/tests/homework/{homework_name}" | ||||||
|  |     assert os.path.exists(folder_path), f"there exists no {folder_path}" | ||||||
|  |     distribute_json(folder_path, repo_obj) | ||||||
|     return result_dict |     return result_dict | ||||||
|  |  | ||||||
|  | @ -52,7 +52,9 @@ class OptionalCmd(BaseModel): | ||||||
|     stderr: Optional[CmdFile] = None |     stderr: Optional[CmdFile] = None | ||||||
|     cpu_limit: Optional[int] = Field(4 * 1000000000000, serialization_alias="cpuLimit") |     cpu_limit: Optional[int] = Field(4 * 1000000000000, serialization_alias="cpuLimit") | ||||||
|     real_cpu_limit: Optional[int] = Field(None, serialization_alias="realCpuLimit") |     real_cpu_limit: Optional[int] = Field(None, serialization_alias="realCpuLimit") | ||||||
|     clock_limit: Optional[int] = Field(8 * 1000000000000, serialization_alias="clockLimit") |     clock_limit: Optional[int] = Field( | ||||||
|  |         8 * 1000000000000, serialization_alias="clockLimit" | ||||||
|  |     ) | ||||||
|     memory_limit: Optional[int] = Field( |     memory_limit: Optional[int] = Field( | ||||||
|         800 * 1024 * 1024, serialization_alias="memoryLimit" |         800 * 1024 * 1024, serialization_alias="memoryLimit" | ||||||
|     ) |     ) | ||||||
|  |  | ||||||
|  | @ -15,7 +15,7 @@ class ParserResultDetail(BaseModel): | ||||||
| class ParserDummy(BaseModel): | class ParserDummy(BaseModel): | ||||||
|     comment: Optional[str] = "" |     comment: Optional[str] = "" | ||||||
|     score: Optional[int] = 0 |     score: Optional[int] = 0 | ||||||
|     forcequit: Optional[bool] = True |     forcequit: Optional[bool] = False | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class ParserKeyword(BaseModel): | class ParserKeyword(BaseModel): | ||||||
|  | @ -27,7 +27,7 @@ class Outputs(BaseModel): | ||||||
|     score: Optional[int] = 0 |     score: Optional[int] = 0 | ||||||
|     ignorespaces: Optional[bool] = True |     ignorespaces: Optional[bool] = True | ||||||
|     hide: Optional[bool] = False |     hide: Optional[bool] = False | ||||||
|     forcequit: Optional[bool] = True |     forcequit: Optional[bool] = False | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class ParserDiff(BaseModel): | class ParserDiff(BaseModel): | ||||||
|  | @ -48,6 +48,8 @@ class Limit(BaseModel): | ||||||
| 
 | 
 | ||||||
| class Stage(BaseModel): | class Stage(BaseModel): | ||||||
|     name: Optional[str] = None  # Stage name |     name: Optional[str] = None  # Stage name | ||||||
|  |     group: Optional[str] = None  # TODO: may need to formulate this | ||||||
|  |     path: Optional[str] = None  # FIXME: this is highly possible to be removed in future | ||||||
|     command: Optional[str] = None  # Command to run |     command: Optional[str] = None  # Command to run | ||||||
|     files: Optional[Files] = None |     files: Optional[Files] = None | ||||||
|     in_: Optional[str] = Field(None, alias="in") |     in_: Optional[str] = Field(None, alias="in") | ||||||
|  |  | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| import shlex | import shlex | ||||||
| from typing import Tuple, List | from typing import List, Tuple | ||||||
| 
 | 
 | ||||||
| from joj3_config_generator.models import result, task | from joj3_config_generator.models import result, task | ||||||
| 
 | 
 | ||||||
|  | @ -12,7 +12,8 @@ def get_conf_stage( | ||||||
|         # TODO: we may have cq in future |         # TODO: we may have cq in future | ||||||
|         group=( |         group=( | ||||||
|             "joj" |             "joj" | ||||||
|             if (task_stage.name is not None) and (("joj" in task_stage.name) or ("run" in task_stage.name)) |             if (task_stage.name is not None) | ||||||
|  |             and (("joj" in task_stage.name) or ("run" in task_stage.name)) | ||||||
|             else None |             else None | ||||||
|         ), |         ), | ||||||
|         executor=result.Executor( |         executor=result.Executor( | ||||||
|  | @ -47,10 +48,7 @@ def get_executorWithConfig( | ||||||
|         and (task_stage.files is not None) |         and (task_stage.files is not None) | ||||||
|         else [] |         else [] | ||||||
|     ) |     ) | ||||||
|     copy_out_files = [ |     copy_out_files = ["stdout", "stderr"] | ||||||
|         "stdout", |  | ||||||
|         "stderr" |  | ||||||
|     ] |  | ||||||
|     executor_with_config = result.ExecutorWith( |     executor_with_config = result.ExecutorWith( | ||||||
|         default=result.Cmd( |         default=result.Cmd( | ||||||
|             args=( |             args=( | ||||||
|  | @ -237,28 +235,19 @@ def fix_diff( | ||||||
|                 if case_stage.limit and case_stage.limit.mem is not None |                 if case_stage.limit and case_stage.limit.mem is not None | ||||||
|                 else 0 |                 else 0 | ||||||
|             ) |             ) | ||||||
|             command = ( |             command = case_stage.command if case_stage.command is not None else None | ||||||
|                 case_stage.command  |             stdin = case_stage.in_ if case_stage.in_ is not None else f"{case}.in" | ||||||
|                 if case_stage.command is not None |             stdout = case_stage.out_ if case_stage.out_ is not None else f"{case}.out" | ||||||
|                 else None |  | ||||||
|             ) |  | ||||||
|             stdin = ( |  | ||||||
|                 case_stage.in_  |  | ||||||
|                 if case_stage.in_ is not None |  | ||||||
|                 else f"{case}.in" |  | ||||||
|             ) |  | ||||||
|             stdout = ( |  | ||||||
|                 case_stage.out_ |  | ||||||
|                 if case_stage.out_ is not None |  | ||||||
|                 else f"{case}.out" |  | ||||||
|             ) |  | ||||||
| 
 | 
 | ||||||
|             stage_cases.append( |             stage_cases.append( | ||||||
|                 result.OptionalCmd( |                 result.OptionalCmd( | ||||||
|                     stdin=result.CmdFile( |                     stdin=result.CmdFile( | ||||||
|                         src=f"/home/tt/.config/joj/{task_conf.task.type_}/{stdin}" |                         # src=f"/home/tt/.config/joj/{task_conf.task.type_}/{stdin}" | ||||||
|  |                         src=f"/home/tt/.config/joj/{task_stage.path}/{stdin}" | ||||||
|  |                     ), | ||||||
|  |                     args=( | ||||||
|  |                         shlex.split(case_stage.command) if command is not None else None | ||||||
|                     ), |                     ), | ||||||
|                     args=shlex.split(case_stage.command) if command is not None else None, |  | ||||||
|                     cpu_limit=cpu_limit, |                     cpu_limit=cpu_limit, | ||||||
|                     clock_limit=clock_limit, |                     clock_limit=clock_limit, | ||||||
|                     memory_limit=memory_limit, |                     memory_limit=memory_limit, | ||||||
|  | @ -279,7 +268,8 @@ def fix_diff( | ||||||
|                             { |                             { | ||||||
|                                 "score": diff_output.score, |                                 "score": diff_output.score, | ||||||
|                                 "fileName": "stdout", |                                 "fileName": "stdout", | ||||||
|                                 "answerPath": f"/home/tt/.config/joj/{task_conf.task.type_}/{stdout}", |                                 # "answerPath": f"/home/tt/.config/joj/{task_conf.task.type_}/{stdout}", | ||||||
|  |                                 "answerPath": f"/home/tt/.config/joj/{task_stage.path}/{stdin}", | ||||||
|                                 "forceQuitOnDiff": diff_output.forcequit, |                                 "forceQuitOnDiff": diff_output.forcequit, | ||||||
|                                 "alwaysHide": diff_output.hide, |                                 "alwaysHide": diff_output.hide, | ||||||
|                                 "compareSpace": not diff_output.ignorespaces, |                                 "compareSpace": not diff_output.ignorespaces, | ||||||
|  |  | ||||||
|  | @ -6,5 +6,5 @@ sandbox_token = "test" | ||||||
| [files] | [files] | ||||||
| whitelist_patterns = ["*.py", "*.txt", "*.md"] | whitelist_patterns = ["*.py", "*.txt", "*.md"] | ||||||
| whitelist_file = ".whitelist" | whitelist_file = ".whitelist" | ||||||
| required = ["Readme.md" ] | required = ["README.md" ] | ||||||
| immutable = [".gitignore", ".gitattributes", ".gitea/workflows/push.yaml", ".gitea/workflows/release.yaml" ] | immutable = [".gitignore", ".gitattributes", ".gitea/workflows/release.yaml" ] | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| { | { | ||||||
|     "name": "hw 6 ex1", |     "name": "e2", | ||||||
|     "logPath": "/home/tt/.cache/joj3/tests/homework/h6/e1.log", |     "logPath": "/home/tt/.cache/joj3/exam/e2.log", | ||||||
|     "expireUnixTimestamp": 1732031999, |     "expireUnixTimestamp": 1735574399, | ||||||
|     "stage": { |     "stage": { | ||||||
|         "sandboxExecServer": "172.17.0.1:5051", |         "sandboxExecServer": "172.17.0.1:5051", | ||||||
|         "sandboxToken": "test", |         "sandboxToken": "test", | ||||||
|  | @ -17,9 +17,9 @@ | ||||||
|                                 "/tmp/repo-health-checker", |                                 "/tmp/repo-health-checker", | ||||||
|                                 "-root=.", |                                 "-root=.", | ||||||
|                                 "-repoSize=50.5", |                                 "-repoSize=50.5", | ||||||
|                                 "-meta=Readme.md", |                                 "-meta=README.md", | ||||||
|                                 "-checkFileSumList=a5b63323a692d3d8b952442969649b4f823d58dae26429494f613df160710dfc,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,7300de510e1674f6d533ae799eb5395fae6d5fbe6f64ff5047480e503602a4da,ad7ba6fbee5d80e018e4190e31bd842553d540044f0faf13592d73cef93a061b", |                                 "-checkFileSumList=12e3ffc45b2cf64a83f208d982b23559ac6b73e68055ba396fe291efeec3732a,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,46b08d7120f3947261eba15fd6323561f310b4732e8528c01e0144db1ce18375", | ||||||
|                                 "-checkFileNameList=.gitignore,.gitattributes,.gitea/workflows/push.yaml,.gitea/workflows/release.yaml" |                                 "-checkFileNameList=.gitignore,.gitattributes,.gitea/workflows/release.yaml" | ||||||
|                             ], |                             ], | ||||||
|                             "env": [ |                             "env": [ | ||||||
|                                 "PATH=/usr/bin:/bin:/usr/local/bin" |                                 "PATH=/usr/bin:/bin:/usr/local/bin" | ||||||
|  | @ -110,6 +110,22 @@ | ||||||
|                                 "tools/compile": { |                                 "tools/compile": { | ||||||
|                                     "src": "/home/tt/.config/joj/tools/compile", |                                     "src": "/home/tt/.config/joj/tools/compile", | ||||||
|                                     "max": 419430400 |                                     "max": 419430400 | ||||||
|  |                                 }, | ||||||
|  |                                 "h6/build/ex3-main.c": { | ||||||
|  |                                     "src": "/home/tt/.config/joj/h6/build/ex3-main.c", | ||||||
|  |                                     "max": 419430400 | ||||||
|  |                                 }, | ||||||
|  |                                 "h6/build/ex4-main.c": { | ||||||
|  |                                     "src": "/home/tt/.config/joj/h6/build/ex4-main.c", | ||||||
|  |                                     "max": 419430400 | ||||||
|  |                                 }, | ||||||
|  |                                 "h6/build/ex5-main.c": { | ||||||
|  |                                     "src": "/home/tt/.config/joj/h6/build/ex5-main.c", | ||||||
|  |                                     "max": 419430400 | ||||||
|  |                                 }, | ||||||
|  |                                 "h6/build/ex7-main.c": { | ||||||
|  |                                     "src": "/home/tt/.config/joj/h6/build/ex7-main.c", | ||||||
|  |                                     "max": 419430400 | ||||||
|                                 } |                                 } | ||||||
|                             }, |                             }, | ||||||
|                             "copyInCached": {}, |                             "copyInCached": {}, | ||||||
|  | @ -119,10 +135,34 @@ | ||||||
|                                 "stderr" |                                 "stderr" | ||||||
|                             ], |                             ], | ||||||
|                             "copyOutCached": [ |                             "copyOutCached": [ | ||||||
|                                 "h6/build/ex1", |                                 "h6/build/ex2", | ||||||
|                                 "h6/build/ex1-asan", |                                 "h6/build/ex2-asan", | ||||||
|                                 "h6/build/ex1-ubsan", |                                 "h6/build/ex2-ubsan", | ||||||
|                                 "h6/build/ex1-msan", |                                 "h6/build/ex2-msan", | ||||||
|  |                                 "h6/build/ex3", | ||||||
|  |                                 "h6/build/ex3-asan", | ||||||
|  |                                 "h6/build/ex3-ubsan", | ||||||
|  |                                 "h6/build/ex3-msan", | ||||||
|  |                                 "h6/build/ex4", | ||||||
|  |                                 "h6/build/ex4-asan", | ||||||
|  |                                 "h6/build/ex4-ubsan", | ||||||
|  |                                 "h6/build/ex4-msan", | ||||||
|  |                                 "h6/build/ex5", | ||||||
|  |                                 "h6/build/ex5-asan", | ||||||
|  |                                 "h6/build/ex5-ubsan", | ||||||
|  |                                 "h6/build/ex5-msan", | ||||||
|  |                                 "h6/build/ex6", | ||||||
|  |                                 "h6/build/ex6-asan", | ||||||
|  |                                 "h6/build/ex6-ubsan", | ||||||
|  |                                 "h6/build/ex6-msan", | ||||||
|  |                                 "h6/build/ex7", | ||||||
|  |                                 "h6/build/ex7-asan", | ||||||
|  |                                 "h6/build/ex7-ubsan", | ||||||
|  |                                 "h6/build/ex7-msan", | ||||||
|  |                                 "h6/build/ex3-main.c", | ||||||
|  |                                 "h6/build/ex4-main.c", | ||||||
|  |                                 "h6/build/ex5-main.c", | ||||||
|  |                                 "h6/build/ex7-main.c", | ||||||
|                                 "h6/build/compile_commands.json" |                                 "h6/build/compile_commands.json" | ||||||
|                             ], |                             ], | ||||||
|                             "copyOutMax": 0, |                             "copyOutMax": 0, | ||||||
|  | @ -149,484 +189,12 @@ | ||||||
|                             "showMemory": false |                             "showMemory": false | ||||||
|                         } |                         } | ||||||
|                     }, |                     }, | ||||||
|                     { |  | ||||||
|                         "name": "dummy", |  | ||||||
|                         "with": { |  | ||||||
|                             "score": 0, |  | ||||||
|                             "comment": "Congratulations! Your code compiled successfully.", |  | ||||||
|                             "forceQuitOnNotAccepted": true |  | ||||||
|                         } |  | ||||||
|                     }, |  | ||||||
|                     { |                     { | ||||||
|                         "name": "result-status", |                         "name": "result-status", | ||||||
|                         "with": { |                         "with": { | ||||||
|                             "score": 0, |                             "score": 0, | ||||||
|                             "comment": "Congratulations! Your code compiled successfully.", |                             "comment": "Congratulations! Your code compiled successfully.", | ||||||
|                             "forceQuitOnNotAccepted": true |                             "forceQuitOnNotAccepted": false | ||||||
|                         } |  | ||||||
|                     } |  | ||||||
|                 ] |  | ||||||
|             }, |  | ||||||
|             { |  | ||||||
|                 "name": "[cq] Filelength", |  | ||||||
|                 "executor": { |  | ||||||
|                     "name": "sandbox", |  | ||||||
|                     "with": { |  | ||||||
|                         "default": { |  | ||||||
|                             "args": [ |  | ||||||
|                                 "./tools/filelength", |  | ||||||
|                                 "400", |  | ||||||
|                                 "300", |  | ||||||
|                                 "*.c", |  | ||||||
|                                 "*.h" |  | ||||||
|                             ], |  | ||||||
|                             "env": [ |  | ||||||
|                                 "PATH=/usr/bin:/bin:/usr/local/bin" |  | ||||||
|                             ], |  | ||||||
|                             "stdin": { |  | ||||||
|                                 "content": "", |  | ||||||
|                                 "max": 419430400 |  | ||||||
|                             }, |  | ||||||
|                             "stdout": { |  | ||||||
|                                 "name": "stdout", |  | ||||||
|                                 "max": 800000000000000 |  | ||||||
|                             }, |  | ||||||
|                             "stderr": { |  | ||||||
|                                 "name": "stderr", |  | ||||||
|                                 "max": 800000000000000 |  | ||||||
|                             }, |  | ||||||
|                             "cpuLimit": 1000000000000000, |  | ||||||
|                             "realCpuLimit": 0, |  | ||||||
|                             "clockLimit": 2000000000000000, |  | ||||||
|                             "memoryLimit": 838860800, |  | ||||||
|                             "stackLimit": 0, |  | ||||||
|                             "procLimit": 50, |  | ||||||
|                             "cpuRateLimit": 0, |  | ||||||
|                             "cpuSetLimit": "", |  | ||||||
|                             "copyIn": { |  | ||||||
|                                 "tools/filelength": { |  | ||||||
|                                     "src": "/home/tt/.config/joj/tools/filelength", |  | ||||||
|                                     "max": 419430400 |  | ||||||
|                                 } |  | ||||||
|                             }, |  | ||||||
|                             "copyInCached": { |  | ||||||
|                                 "h6/build/ex1": "h6/build/ex1", |  | ||||||
|                                 "h6/build/ex1-asan": "h6/build/ex1-asan", |  | ||||||
|                                 "h6/build/ex1-ubsan": "h6/build/ex1-ubsan", |  | ||||||
|                                 "h6/build/ex1-msan": "h6/build/ex1-msan", |  | ||||||
|                                 "h6/build/compile_commands.json": "h6/build/compile_commands.json" |  | ||||||
|                             }, |  | ||||||
|                             "copyInDir": ".", |  | ||||||
|                             "copyOut": [ |  | ||||||
|                                 "stdout", |  | ||||||
|                                 "stderr" |  | ||||||
|                             ], |  | ||||||
|                             "copyOutCached": [], |  | ||||||
|                             "copyOutMax": 0, |  | ||||||
|                             "copyOutDir": "", |  | ||||||
|                             "tty": false, |  | ||||||
|                             "strictMemoryLimit": false, |  | ||||||
|                             "dataSegmentLimit": false, |  | ||||||
|                             "addressSpaceLimit": false |  | ||||||
|                         }, |  | ||||||
|                         "cases": [] |  | ||||||
|                     } |  | ||||||
|                 }, |  | ||||||
|                 "parsers": [ |  | ||||||
|                     { |  | ||||||
|                         "name": "keyword", |  | ||||||
|                         "with": { |  | ||||||
|                             "matches": [ |  | ||||||
|                                 { |  | ||||||
|                                     "keywords": [ |  | ||||||
|                                         "recommended" |  | ||||||
|                                     ], |  | ||||||
|                                     "score": 10 |  | ||||||
|                                 }, |  | ||||||
|                                 { |  | ||||||
|                                     "keywords": [ |  | ||||||
|                                         "max" |  | ||||||
|                                     ], |  | ||||||
|                                     "score": 20 |  | ||||||
|                                 } |  | ||||||
|                             ] |  | ||||||
|                         } |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         "name": "dummy", |  | ||||||
|                         "with": { |  | ||||||
|                             "score": 0, |  | ||||||
|                             "comment": "", |  | ||||||
|                             "forceQuitOnNotAccepted": true |  | ||||||
|                         } |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         "name": "result-detail", |  | ||||||
|                         "with": { |  | ||||||
|                             "score": 0, |  | ||||||
|                             "comment": "", |  | ||||||
|                             "showFiles": [ |  | ||||||
|                                 "stdout" |  | ||||||
|                             ], |  | ||||||
|                             "showExitStatus": true, |  | ||||||
|                             "showRuntime": false, |  | ||||||
|                             "showMemory": false |  | ||||||
|                         } |  | ||||||
|                     } |  | ||||||
|                 ] |  | ||||||
|             }, |  | ||||||
|             { |  | ||||||
|                 "name": "[cq] Clang-tidy", |  | ||||||
|                 "executor": { |  | ||||||
|                     "name": "sandbox", |  | ||||||
|                     "with": { |  | ||||||
|                         "default": { |  | ||||||
|                             "args": [ |  | ||||||
|                                 "run-clang-tidy-18", |  | ||||||
|                                 "-header-filter=.*", |  | ||||||
|                                 "-quiet", |  | ||||||
|                                 "-load=/usr/local/lib/libcodequality.so", |  | ||||||
|                                 "-p", |  | ||||||
|                                 "h6/build" |  | ||||||
|                             ], |  | ||||||
|                             "env": [ |  | ||||||
|                                 "PATH=/usr/bin:/bin:/usr/local/bin" |  | ||||||
|                             ], |  | ||||||
|                             "stdin": { |  | ||||||
|                                 "content": "", |  | ||||||
|                                 "max": 419430400 |  | ||||||
|                             }, |  | ||||||
|                             "stdout": { |  | ||||||
|                                 "name": "stdout", |  | ||||||
|                                 "max": 65000000000000 |  | ||||||
|                             }, |  | ||||||
|                             "stderr": { |  | ||||||
|                                 "name": "stderr", |  | ||||||
|                                 "max": 800000000000000 |  | ||||||
|                             }, |  | ||||||
|                             "cpuLimit": 1000000000000000, |  | ||||||
|                             "realCpuLimit": 0, |  | ||||||
|                             "clockLimit": 2000000000000000, |  | ||||||
|                             "memoryLimit": 838860800, |  | ||||||
|                             "stackLimit": 0, |  | ||||||
|                             "procLimit": 50, |  | ||||||
|                             "cpuRateLimit": 0, |  | ||||||
|                             "cpuSetLimit": "", |  | ||||||
|                             "copyIn": { |  | ||||||
|                                 "projects/p2/.clang-tidy": { |  | ||||||
|                                     "src": "/home/tt/.config/joj/projects/p2/.clang-tidy", |  | ||||||
|                                     "max": 419430400 |  | ||||||
|                                 } |  | ||||||
|                             }, |  | ||||||
|                             "copyInCached": { |  | ||||||
|                                 "h6/build/ex1": "h6/build/ex1", |  | ||||||
|                                 "h6/build/ex1-asan": "h6/build/ex1-asan", |  | ||||||
|                                 "h6/build/ex1-ubsan": "h6/build/ex1-ubsan", |  | ||||||
|                                 "h6/build/ex1-msan": "h6/build/ex1-msan", |  | ||||||
|                                 "h6/build/compile_commands.json": "h6/build/compile_commands.json" |  | ||||||
|                             }, |  | ||||||
|                             "copyInDir": ".", |  | ||||||
|                             "copyOut": [ |  | ||||||
|                                 "stdout", |  | ||||||
|                                 "stderr" |  | ||||||
|                             ], |  | ||||||
|                             "copyOutCached": [], |  | ||||||
|                             "copyOutMax": 0, |  | ||||||
|                             "copyOutDir": "", |  | ||||||
|                             "tty": false, |  | ||||||
|                             "strictMemoryLimit": false, |  | ||||||
|                             "dataSegmentLimit": false, |  | ||||||
|                             "addressSpaceLimit": false |  | ||||||
|                         }, |  | ||||||
|                         "cases": [] |  | ||||||
|                     } |  | ||||||
|                 }, |  | ||||||
|                 "parsers": [ |  | ||||||
|                     { |  | ||||||
|                         "name": "clangtidy", |  | ||||||
|                         "with": { |  | ||||||
|                             "matches": [ |  | ||||||
|                                 { |  | ||||||
|                                     "keywords": [ |  | ||||||
|                                         "readability-function-size" |  | ||||||
|                                     ], |  | ||||||
|                                     "score": 10 |  | ||||||
|                                 }, |  | ||||||
|                                 { |  | ||||||
|                                     "keywords": [ |  | ||||||
|                                         "codequality-no-global-variables", |  | ||||||
|                                         "codequality-no-header-guard", |  | ||||||
|                                         "codequality-no-fflush-stdin" |  | ||||||
|                                     ], |  | ||||||
|                                     "score": 20 |  | ||||||
|                                 }, |  | ||||||
|                                 { |  | ||||||
|                                     "keywords": [ |  | ||||||
|                                         "codequality-unchecked-malloc-result", |  | ||||||
|                                         "readability-duplicate-include", |  | ||||||
|                                         "readability-identifier-naming", |  | ||||||
|                                         "readability-redundant", |  | ||||||
|                                         "readability-misplaced-array-index", |  | ||||||
|                                         "cppcoreguidelines-init-variables", |  | ||||||
|                                         "bugprone-suspicious-string-compare", |  | ||||||
|                                         "google-global-names-in-headers", |  | ||||||
|                                         "clang-diagnostic", |  | ||||||
|                                         "clang-analyzer", |  | ||||||
|                                         "misc", |  | ||||||
|                                         "performance", |  | ||||||
|                                         "portability" |  | ||||||
|                                     ], |  | ||||||
|                                     "score": 5 |  | ||||||
|                                 }, |  | ||||||
|                                 { |  | ||||||
|                                     "keywords": [ |  | ||||||
|                                         "readability-misleading-indentation" |  | ||||||
|                                     ], |  | ||||||
|                                     "score": 15 |  | ||||||
|                                 } |  | ||||||
|                             ] |  | ||||||
|                         } |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         "name": "dummy", |  | ||||||
|                         "with": { |  | ||||||
|                             "score": 0, |  | ||||||
|                             "comment": "", |  | ||||||
|                             "forceQuitOnNotAccepted": true |  | ||||||
|                         } |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         "name": "result-detail", |  | ||||||
|                         "with": { |  | ||||||
|                             "score": 0, |  | ||||||
|                             "comment": "", |  | ||||||
|                             "showFiles": [ |  | ||||||
|                                 "stdout" |  | ||||||
|                             ], |  | ||||||
|                             "showExitStatus": true, |  | ||||||
|                             "showRuntime": false, |  | ||||||
|                             "showMemory": false |  | ||||||
|                         } |  | ||||||
|                     } |  | ||||||
|                 ] |  | ||||||
|             }, |  | ||||||
|             { |  | ||||||
|                 "name": "[cq] Cppcheck", |  | ||||||
|                 "executor": { |  | ||||||
|                     "name": "sandbox", |  | ||||||
|                     "with": { |  | ||||||
|                         "default": { |  | ||||||
|                             "args": [ |  | ||||||
|                                 "cppcheck", |  | ||||||
|                                 "--template={\"file\":\"{file}\",\"line\":{line}, \"column\":{column}, \"severity\":\"{severity}\", \"message\":\"{message}\", \"id\":\"{id}\"}", |  | ||||||
|                                 "--force", |  | ||||||
|                                 "--enable=all", |  | ||||||
|                                 "--suppress=missingIncludeSystem", |  | ||||||
|                                 "--quiet", |  | ||||||
|                                 "./" |  | ||||||
|                             ], |  | ||||||
|                             "env": [ |  | ||||||
|                                 "PATH=/usr/bin:/bin:/usr/local/bin" |  | ||||||
|                             ], |  | ||||||
|                             "stdin": { |  | ||||||
|                                 "content": "", |  | ||||||
|                                 "max": 419430400 |  | ||||||
|                             }, |  | ||||||
|                             "stdout": { |  | ||||||
|                                 "name": "stdout", |  | ||||||
|                                 "max": 800000000000000 |  | ||||||
|                             }, |  | ||||||
|                             "stderr": { |  | ||||||
|                                 "name": "stderr", |  | ||||||
|                                 "max": 65000000000000 |  | ||||||
|                             }, |  | ||||||
|                             "cpuLimit": 1000000000000000, |  | ||||||
|                             "realCpuLimit": 0, |  | ||||||
|                             "clockLimit": 2000000000000000, |  | ||||||
|                             "memoryLimit": 838860800, |  | ||||||
|                             "stackLimit": 0, |  | ||||||
|                             "procLimit": 50, |  | ||||||
|                             "cpuRateLimit": 0, |  | ||||||
|                             "cpuSetLimit": "", |  | ||||||
|                             "copyIn": {}, |  | ||||||
|                             "copyInCached": { |  | ||||||
|                                 "h6/build/ex1": "h6/build/ex1", |  | ||||||
|                                 "h6/build/ex1-asan": "h6/build/ex1-asan", |  | ||||||
|                                 "h6/build/ex1-ubsan": "h6/build/ex1-ubsan", |  | ||||||
|                                 "h6/build/ex1-msan": "h6/build/ex1-msan", |  | ||||||
|                                 "h6/build/compile_commands.json": "h6/build/compile_commands.json" |  | ||||||
|                             }, |  | ||||||
|                             "copyInDir": ".", |  | ||||||
|                             "copyOut": [ |  | ||||||
|                                 "stdout", |  | ||||||
|                                 "stderr" |  | ||||||
|                             ], |  | ||||||
|                             "copyOutCached": [], |  | ||||||
|                             "copyOutMax": 0, |  | ||||||
|                             "copyOutDir": "", |  | ||||||
|                             "tty": false, |  | ||||||
|                             "strictMemoryLimit": false, |  | ||||||
|                             "dataSegmentLimit": false, |  | ||||||
|                             "addressSpaceLimit": false |  | ||||||
|                         }, |  | ||||||
|                         "cases": [] |  | ||||||
|                     } |  | ||||||
|                 }, |  | ||||||
|                 "parsers": [ |  | ||||||
|                     { |  | ||||||
|                         "name": "cppcheck", |  | ||||||
|                         "with": { |  | ||||||
|                             "matches": [ |  | ||||||
|                                 { |  | ||||||
|                                     "keywords": [ |  | ||||||
|                                         "warning", |  | ||||||
|                                         "portability", |  | ||||||
|                                         "performance", |  | ||||||
|                                         "style" |  | ||||||
|                                     ], |  | ||||||
|                                     "score": 5 |  | ||||||
|                                 }, |  | ||||||
|                                 { |  | ||||||
|                                     "keywords": [ |  | ||||||
|                                         "error" |  | ||||||
|                                     ], |  | ||||||
|                                     "score": 15 |  | ||||||
|                                 } |  | ||||||
|                             ] |  | ||||||
|                         } |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         "name": "dummy", |  | ||||||
|                         "with": { |  | ||||||
|                             "score": 0, |  | ||||||
|                             "comment": "", |  | ||||||
|                             "forceQuitOnNotAccepted": true |  | ||||||
|                         } |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         "name": "result-detail", |  | ||||||
|                         "with": { |  | ||||||
|                             "score": 0, |  | ||||||
|                             "comment": "", |  | ||||||
|                             "showFiles": [ |  | ||||||
|                                 "stderr" |  | ||||||
|                             ], |  | ||||||
|                             "showExitStatus": true, |  | ||||||
|                             "showRuntime": false, |  | ||||||
|                             "showMemory": false |  | ||||||
|                         } |  | ||||||
|                     } |  | ||||||
|                 ] |  | ||||||
|             }, |  | ||||||
|             { |  | ||||||
|                 "name": "[cq] Cpplint", |  | ||||||
|                 "executor": { |  | ||||||
|                     "name": "sandbox", |  | ||||||
|                     "with": { |  | ||||||
|                         "default": { |  | ||||||
|                             "args": [ |  | ||||||
|                                 "cpplint", |  | ||||||
|                                 "--linelength=120", |  | ||||||
|                                 "--filter=-legal,-readability/casting,-whitespace,-runtime/printf,-runtime/threadsafe_fn,-runtime/int,-readability/todo,-build/include_subdir,-build/header_guard,-build/include_what_you_use", |  | ||||||
|                                 "--recursive", |  | ||||||
|                                 "--exclude=build", |  | ||||||
|                                 "." |  | ||||||
|                             ], |  | ||||||
|                             "env": [ |  | ||||||
|                                 "PATH=/usr/bin:/bin:/usr/local/bin" |  | ||||||
|                             ], |  | ||||||
|                             "stdin": { |  | ||||||
|                                 "content": "", |  | ||||||
|                                 "max": 419430400 |  | ||||||
|                             }, |  | ||||||
|                             "stdout": { |  | ||||||
|                                 "name": "stdout", |  | ||||||
|                                 "max": 65000000000000 |  | ||||||
|                             }, |  | ||||||
|                             "stderr": { |  | ||||||
|                                 "name": "stderr", |  | ||||||
|                                 "max": 800000000000000 |  | ||||||
|                             }, |  | ||||||
|                             "cpuLimit": 1000000000000000, |  | ||||||
|                             "realCpuLimit": 0, |  | ||||||
|                             "clockLimit": 2000000000000000, |  | ||||||
|                             "memoryLimit": 838860800, |  | ||||||
|                             "stackLimit": 0, |  | ||||||
|                             "procLimit": 50, |  | ||||||
|                             "cpuRateLimit": 0, |  | ||||||
|                             "cpuSetLimit": "", |  | ||||||
|                             "copyIn": {}, |  | ||||||
|                             "copyInCached": { |  | ||||||
|                                 "h6/build/ex1": "h6/build/ex1", |  | ||||||
|                                 "h6/build/ex1-asan": "h6/build/ex1-asan", |  | ||||||
|                                 "h6/build/ex1-ubsan": "h6/build/ex1-ubsan", |  | ||||||
|                                 "h6/build/ex1-msan": "h6/build/ex1-msan", |  | ||||||
|                                 "h6/build/compile_commands.json": "h6/build/compile_commands.json" |  | ||||||
|                             }, |  | ||||||
|                             "copyInDir": ".", |  | ||||||
|                             "copyOut": [ |  | ||||||
|                                 "stdout", |  | ||||||
|                                 "stderr" |  | ||||||
|                             ], |  | ||||||
|                             "copyOutCached": [], |  | ||||||
|                             "copyOutMax": 0, |  | ||||||
|                             "copyOutDir": "", |  | ||||||
|                             "tty": false, |  | ||||||
|                             "strictMemoryLimit": false, |  | ||||||
|                             "dataSegmentLimit": false, |  | ||||||
|                             "addressSpaceLimit": false |  | ||||||
|                         }, |  | ||||||
|                         "cases": [] |  | ||||||
|                     } |  | ||||||
|                 }, |  | ||||||
|                 "parsers": [ |  | ||||||
|                     { |  | ||||||
|                         "name": "cpplint", |  | ||||||
|                         "with": { |  | ||||||
|                             "score": 0, |  | ||||||
|                             "comment": "", |  | ||||||
|                             "forceQuitOnNotAccepted": true, |  | ||||||
|                             "matches": [ |  | ||||||
|                                 { |  | ||||||
|                                     "keywords": [ |  | ||||||
|                                         "build" |  | ||||||
|                                     ], |  | ||||||
|                                     "score": 10 |  | ||||||
|                                 }, |  | ||||||
|                                 { |  | ||||||
|                                     "keywords": [ |  | ||||||
|                                         "readability" |  | ||||||
|                                     ], |  | ||||||
|                                     "score": 20 |  | ||||||
|                                 }, |  | ||||||
|                                 { |  | ||||||
|                                     "keywords": [ |  | ||||||
|                                         "runtime" |  | ||||||
|                                     ], |  | ||||||
|                                     "score": 5 |  | ||||||
|                                 } |  | ||||||
|                             ] |  | ||||||
|                         } |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         "name": "dummy", |  | ||||||
|                         "with": { |  | ||||||
|                             "score": 0, |  | ||||||
|                             "comment": "", |  | ||||||
|                             "forceQuitOnNotAccepted": true |  | ||||||
|                         } |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         "name": "result-detail", |  | ||||||
|                         "with": { |  | ||||||
|                             "score": 0, |  | ||||||
|                             "comment": "", |  | ||||||
|                             "showFiles": [ |  | ||||||
|                                 "stderr" |  | ||||||
|                             ], |  | ||||||
|                             "showExitStatus": true, |  | ||||||
|                             "showRuntime": false, |  | ||||||
|                             "showMemory": false |  | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 ] |                 ] | ||||||
|  | @ -634,9 +202,9 @@ | ||||||
|         ] |         ] | ||||||
|     }, |     }, | ||||||
|     "teapot": { |     "teapot": { | ||||||
|         "logPath": "/home/tt/.cache/joj3/tests/homework/h6/e1-joint-teapot-debug.log", |         "logPath": "/home/tt/.cache/joj3/exam/e2-joint-teapot-debug.log", | ||||||
|         "scoreboardPath": "tests/homework-scoreboard.csv", |         "scoreboardPath": "exam/e2-scoreboard.csv", | ||||||
|         "failedTablePath": "tests/homework-failed-table.md", |         "failedTablePath": "exam/e2-failed-table.md", | ||||||
|         "gradingRepoName": "engr151-joj", |         "gradingRepoName": "engr151-joj", | ||||||
|         "skipIssue": false, |         "skipIssue": false, | ||||||
|         "skipScoreboard": false, |         "skipScoreboard": false, | ||||||
|  |  | ||||||
|  | @ -1,79 +1,20 @@ | ||||||
| # general task configuration | # general task configuration | ||||||
| task.name = "hw 6 ex1" # task name | task.name = "e2" # task name | ||||||
| task.type = "tests/homework/h6/e1" | task.type = "exam/e2" | ||||||
| 
 | 
 | ||||||
| release.deadline = 2024-11-19 23:59:59+08:00 | release.deadline = 2024-12-30 23:59:59+08:00 | ||||||
| release.stages = [ "compile" ] | release.stages = [ "compile" ] | ||||||
| 
 | 
 | ||||||
| [[stages]] | [[stages]] | ||||||
| name = "Compilation" | name = "Compilation" | ||||||
| command = "./tools/compile" # eg. script running cmake commands | command = "./tools/compile" # eg. script running cmake commands | ||||||
| files.import = [ "tools/compile"]  | files.import = [ "tools/compile", "h6/build/ex3-main.c", "h6/build/ex4-main.c", "h6/build/ex5-main.c", "h6/build/ex7-main.c" ] | ||||||
| files.export = [ "h6/build/ex1", "h6/build/ex1-asan", "h6/build/ex1-ubsan", "h6/build/ex1-msan", "h6/build/compile_commands.json" ] | files.export = [ "h6/build/ex2", "h6/build/ex2-asan", "h6/build/ex2-ubsan", "h6/build/ex2-msan", "h6/build/ex3", "h6/build/ex3-asan", "h6/build/ex3-ubsan", "h6/build/ex3-msan", "h6/build/ex4", "h6/build/ex4-asan", "h6/build/ex4-ubsan", "h6/build/ex4-msan", "h6/build/ex5", "h6/build/ex5-asan", "h6/build/ex5-ubsan", "h6/build/ex5-msan", "h6/build/ex6", "h6/build/ex6-asan", "h6/build/ex6-ubsan", "h6/build/ex6-msan", "h6/build/ex7", "h6/build/ex7-asan", "h6/build/ex7-ubsan", "h6/build/ex7-msan", "h6/build/ex3-main.c", "h6/build/ex4-main.c", "h6/build/ex5-main.c", "h6/build/ex7-main.c", "h6/build/compile_commands.json" ] | ||||||
| 
 | 
 | ||||||
| # compile parsers  | # compile parsers ex | ||||||
| parsers = [ "result-detail", "dummy", "result-status" ] | parsers = [ "result-detail", "result-status" ] | ||||||
| result-status.comment = "Congratulations! Your code compiled successfully." | result-status.comment = "Congratulations! Your code compiled successfully." | ||||||
| dummy.comment = "\n\n### Details\n" |  | ||||||
| result-detail.exitstatus = true | result-detail.exitstatus = true | ||||||
| result-detail.stderr = true | result-detail.stderr = true | ||||||
| result-detail.time = false | result-detail.time = false | ||||||
| result-detail.mem = false | result-detail.mem = false | ||||||
| 
 |  | ||||||
| [[stages]] |  | ||||||
| name = "[cq] Filelength" |  | ||||||
| command = "./tools/filelength 400 300 *.c *.h" |  | ||||||
| files.import = [ "tools/filelength" ] |  | ||||||
| 
 |  | ||||||
| parsers = [ "keyword", "dummy", "result-detail" ] |  | ||||||
| keyword.keyword = [ "max", "recommended"]  |  | ||||||
| keyword.weight = [ 20, 10 ]  |  | ||||||
| dummy.comment = "\n\n### Details\n" |  | ||||||
| result-detail.exitstatus = true |  | ||||||
| result-detail.stdout = true |  | ||||||
| result-detail.time = false |  | ||||||
| result-detail.mem = false |  | ||||||
| 
 |  | ||||||
| [[stages]] |  | ||||||
| name = "[cq] Clang-tidy" |  | ||||||
| command = "run-clang-tidy-18 -header-filter=.* -quiet -load=/usr/local/lib/libcodequality.so -p h6/build" |  | ||||||
| files.import = [ "projects/p2/.clang-tidy", "h6/build/compile_commands.json" ] |  | ||||||
| limit.stdout = 65 |  | ||||||
| 
 |  | ||||||
| parsers = [ "clangtidy", "dummy", "result-detail" ] |  | ||||||
| clangtidy.keyword = [ "codequality-unchecked-malloc-result", "codequality-no-global-variables", "codequality-no-header-guard", "codequality-no-fflush-stdin", "readability-function-size", "readability-duplicate-include", "readability-identifier-naming", "readability-redundant", "readability-misleading-indentation", "readability-misplaced-array-index", "cppcoreguidelines-init-variables", "bugprone-suspicious-string-compare", "google-global-names-in-headers", "clang-diagnostic", "clang-analyzer", "misc", "performance", "portability" ] |  | ||||||
| clangtidy.weight = [ 5, 20, 20, 20, 10, 5, 5, 5, 15, 5, 5, 5, 5, 5, 5, 5, 5, 5] |  | ||||||
| dummy.comment = "\n\n### Details\n" |  | ||||||
| result-detail.exitstatus = true |  | ||||||
| result-detail.stdout = true |  | ||||||
| result-detail.time = false |  | ||||||
| result-detail.mem = false |  | ||||||
| 
 |  | ||||||
| [[stages]] |  | ||||||
| name = "[cq] Cppcheck" |  | ||||||
| command = "cppcheck --template='{\"file\":\"{file}\",\"line\":{line}, \"column\":{column}, \"severity\":\"{severity}\", \"message\":\"{message}\", \"id\":\"{id}\"}' --force --enable=all --suppress=missingIncludeSystem  --quiet ./" |  | ||||||
| limit.stderr = 65 |  | ||||||
| 
 |  | ||||||
| parsers = [ "cppcheck", "dummy", "result-detail" ] |  | ||||||
| cppcheck.keyword = ["error", "warning", "portability", "performance", "style"] |  | ||||||
| cppcheck.weight = [15, 5, 5, 5, 5] |  | ||||||
| dummy.comment = "\n\n### Details\n" |  | ||||||
| result-detail.exitstatus = true |  | ||||||
| result-detail.stderr = true |  | ||||||
| result-detail.time = false |  | ||||||
| result-detail.mem = false |  | ||||||
| 
 |  | ||||||
| [[stages]] |  | ||||||
| name = "[cq] Cpplint" |  | ||||||
| command = "cpplint --linelength=120 --filter=-legal,-readability/casting,-whitespace,-runtime/printf,-runtime/threadsafe_fn,-runtime/int,-readability/todo,-build/include_subdir,-build/header_guard,-build/include_what_you_use --recursive --exclude=build ." |  | ||||||
| limit.stdout = 65 |  | ||||||
| 
 |  | ||||||
| parsers = [ "cpplint", "dummy", "result-detail" ] |  | ||||||
| cpplint.keyword = [ "runtime", "readability", "build" ] |  | ||||||
| cpplint.weight = [ 5, 20, 10] |  | ||||||
| dummy.comment = "\n\n### Details\n" |  | ||||||
| result-detail.exitstatus = true |  | ||||||
| result-detail.stderr = true |  | ||||||
| result-detail.time = false |  | ||||||
| result-detail.mem = false |  | ||||||
| 
 |  | ||||||
|  |  | ||||||
							
								
								
									
										4
									
								
								tests/immutable_file/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								tests/immutable_file/.gitignore
									
									
									
									
										vendored
									
									
								
							|  | @ -10,14 +10,10 @@ | ||||||
| !.gitignore | !.gitignore | ||||||
| !.gitattributes | !.gitattributes | ||||||
| !.gitea/ | !.gitea/ | ||||||
| !.gitea/issue_template/ |  | ||||||
| !.gitea/workflows/ | !.gitea/workflows/ | ||||||
| !*.yaml | !*.yaml | ||||||
| !Makefile | !Makefile | ||||||
| !CMakeLists.txt | !CMakeLists.txt | ||||||
| !h[0-8]/ |  | ||||||
| !*.m |  | ||||||
| !*.c | !*.c | ||||||
| !*.cpp |  | ||||||
| !*.h | !*.h | ||||||
| !*.md | !*.md | ||||||
|  |  | ||||||
|  | @ -18,4 +18,4 @@ jobs: | ||||||
|           fetch-depth: 0 |           fetch-depth: 0 | ||||||
|       - name: run joj3 |       - name: run joj3 | ||||||
|         run: | |         run: | | ||||||
|           sudo -E -u tt joj3 -conf-root "/home/tt/.config/joj/tests/homework" -conf-name "conf-release.json" -tag "${{ github.ref_name }}"           |           sudo -E -u tt joj3 -conf-root "/home/tt/.config/joj/exam" -conf-name "conf-release.json" -tag "${{ github.ref_name }}" | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user