From 6e3b946eb3213b339aa7892bb22beeb8d3362a64 Mon Sep 17 00:00:00 2001 From: Nuvole Date: Mon, 25 Nov 2024 23:36:04 +0800 Subject: [PATCH] feat: actorcsvpath --- joj3_config_generator/convert.py | 2 ++ joj3_config_generator/main.py | 5 ++++- joj3_config_generator/models/result.py | 1 + joj3_config_generator/processers/task.py | 17 ++++++++++++----- tests/convert/basic/repo.toml | 2 +- tests/convert/basic/task.json | 5 +++-- tests/immutable_file/.gitignore | 4 ++++ tests/immutable_file/release.yaml | 2 +- 8 files changed, 28 insertions(+), 10 deletions(-) diff --git a/joj3_config_generator/convert.py b/joj3_config_generator/convert.py index 1e7bb87..bc9c3e9 100644 --- a/joj3_config_generator/convert.py +++ b/joj3_config_generator/convert.py @@ -30,6 +30,8 @@ def convert(repo_conf: repo.Config, task_conf: task.Config) -> result.Config: if task_conf.release.deadline else -1 ), + # FIXME: don't hardcode + actor_csv_path="/home/tt/.config/joj/students.csv", stage=result.Stage(stages=[], sandbox_token=repo_conf.sandbox_token), teapot=get_teapot_config(repo_conf, task_conf), ) diff --git a/joj3_config_generator/main.py b/joj3_config_generator/main.py index cbcbf2f..691fcfd 100644 --- a/joj3_config_generator/main.py +++ b/joj3_config_generator/main.py @@ -72,7 +72,10 @@ def convert(root: Path = Path(".")) -> Dict[str, Any]: # 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}" + # folder_path = f"/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/tests/homework/{homework_name}" + folder_path = ( + "/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/tests/homework" + ) assert os.path.exists(folder_path), f"there exists no {folder_path}" distribute_json(folder_path, repo_obj) return result_dict diff --git a/joj3_config_generator/models/result.py b/joj3_config_generator/models/result.py index bf22942..d45b1a5 100644 --- a/joj3_config_generator/models/result.py +++ b/joj3_config_generator/models/result.py @@ -144,5 +144,6 @@ class Config(BaseModel): name: str = "unknown" log_path: str = Field("", serialization_alias="logPath") expire_unix_timestamp: int = Field(-1, serialization_alias="expireUnixTimestamp") + actor_csv_path: str = Field("", serialization_alias="actorCsvPath") stage: Stage teapot: Teapot diff --git a/joj3_config_generator/processers/task.py b/joj3_config_generator/processers/task.py index 09a955b..0aa9392 100644 --- a/joj3_config_generator/processers/task.py +++ b/joj3_config_generator/processers/task.py @@ -56,8 +56,15 @@ def get_executorWithConfig( if task_stage.command is not None else [] ), + # FIXME: remove this trick copy_in={ - file: result.CmdFile(src=f"/home/tt/.config/joj/{file}") + ("./.clang-tidy" if file.endswith("clang-tidy") else file): ( + result.CmdFile(src=f"/home/tt/.config/joj/{file}") + if not file.endswith("main.cpp") + else result.CmdFile( + src=f"/home/tt/.config/joj/tests/homework/h7/e3/ex3-main.cpp" + ) + ) for file in copy_in_files }, stdin=( @@ -242,8 +249,8 @@ def fix_diff( stage_cases.append( result.OptionalCmd( stdin=result.CmdFile( - # src=f"/home/tt/.config/joj/{task_conf.task.type_}/{stdin}" - src=f"/home/tt/.config/joj/{task_stage.path}/{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 @@ -268,8 +275,8 @@ def fix_diff( { "score": diff_output.score, "fileName": "stdout", - # "answerPath": f"/home/tt/.config/joj/{task_conf.task.type_}/{stdout}", - "answerPath": f"/home/tt/.config/joj/{task_stage.path}/{stdin}", + "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, "alwaysHide": diff_output.hide, "compareSpace": not diff_output.ignorespaces, diff --git a/tests/convert/basic/repo.toml b/tests/convert/basic/repo.toml index 91030c2..1174ac2 100644 --- a/tests/convert/basic/repo.toml +++ b/tests/convert/basic/repo.toml @@ -7,4 +7,4 @@ sandbox_token = "test" whitelist_patterns = ["*.py", "*.txt", "*.md"] whitelist_file = ".whitelist" required = ["README.md" ] -immutable = [".gitignore", ".gitattributes", ".gitea/workflows/release.yaml" ] +immutable = [".gitignore", ".gitattributes",".gitea/workflows/push.yaml", ".gitea/workflows/release.yaml" ] diff --git a/tests/convert/basic/task.json b/tests/convert/basic/task.json index 9de523f..e7207de 100644 --- a/tests/convert/basic/task.json +++ b/tests/convert/basic/task.json @@ -2,6 +2,7 @@ "name": "e2", "logPath": "/home/tt/.cache/joj3/exam/e2.log", "expireUnixTimestamp": 1735574399, + "actorCsvPath": "/home/tt/.config/joj/students.csv", "stage": { "sandboxExecServer": "172.17.0.1:5051", "sandboxToken": "test", @@ -18,8 +19,8 @@ "-root=.", "-repoSize=50.5", "-meta=README.md", - "-checkFileSumList=12e3ffc45b2cf64a83f208d982b23559ac6b73e68055ba396fe291efeec3732a,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,46b08d7120f3947261eba15fd6323561f310b4732e8528c01e0144db1ce18375", - "-checkFileNameList=.gitignore,.gitattributes,.gitea/workflows/release.yaml" + "-checkFileSumList=a5b63323a692d3d8b952442969649b4f823d58dae26429494f613df160710dfc,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,f6740081487ca34963a005209e2e9adfdf6f3561719af082d40fe80145e0cceb,ad7ba6fbee5d80e018e4190e31bd842553d540044f0faf13592d73cef93a061b", + "-checkFileNameList=.gitignore,.gitattributes,.gitea/workflows/push.yaml,.gitea/workflows/release.yaml" ], "env": [ "PATH=/usr/bin:/bin:/usr/local/bin" diff --git a/tests/immutable_file/.gitignore b/tests/immutable_file/.gitignore index 21a639b..754f776 100644 --- a/tests/immutable_file/.gitignore +++ b/tests/immutable_file/.gitignore @@ -10,10 +10,14 @@ !.gitignore !.gitattributes !.gitea/ +!.gitea/issue_template/ !.gitea/workflows/ !*.yaml !Makefile !CMakeLists.txt +!h[0-8]/ +!*.m !*.c +!*.cpp !*.h !*.md diff --git a/tests/immutable_file/release.yaml b/tests/immutable_file/release.yaml index 2bc37c5..e740403 100644 --- a/tests/immutable_file/release.yaml +++ b/tests/immutable_file/release.yaml @@ -18,4 +18,4 @@ jobs: fetch-depth: 0 - name: run joj3 run: | - sudo -E -u tt joj3 -conf-root "/home/tt/.config/joj/exam" -conf-name "conf-release.json" -tag "${{ github.ref_name }}" + sudo -E -u tt joj3 -conf-root "/home/tt/.config/joj/tests/homework" -conf-name "conf-release.json" -tag "${{ github.ref_name }}"