diff --git a/joj3_config_generator/convert.py b/joj3_config_generator/convert.py index bc9c3e9..7ed3067 100644 --- a/joj3_config_generator/convert.py +++ b/joj3_config_generator/convert.py @@ -13,6 +13,7 @@ from joj3_config_generator.processers.task import ( fix_diff, fix_dummy, fix_keyword, + fix_file, fix_result_detail, get_conf_stage, get_executorWithConfig, @@ -47,6 +48,7 @@ def convert(repo_conf: repo.Config, task_conf: task.Config) -> result.Config: conf_stage = fix_result_detail(task_stage, conf_stage) conf_stage = fix_dummy(task_stage, conf_stage) conf_stage = fix_keyword(task_stage, conf_stage) + conf_stage = fix_file(task_stage, conf_stage) conf_stage = fix_diff(task_stage, conf_stage, task_conf) result_conf.stage.stages.append(conf_stage) diff --git a/joj3_config_generator/main.py b/joj3_config_generator/main.py index de9ff47..a0ba795 100644 --- a/joj3_config_generator/main.py +++ b/joj3_config_generator/main.py @@ -71,14 +71,15 @@ def convert(root: Path = Path(".")) -> Dict[str, Any]: result_file.write("\n") # FIXME: change the path to the server - homework_name = "h8" + # homework_name = "h8" # 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" + # "/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/homework/h8" # ) - folder_path = "/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/homework/h7" + # folder_path = "/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/homework/h7" # for projects - folder_path = "/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/tests/projects/p3/p3m1" - assert os.path.exists(folder_path), f"there exists no {folder_path}" - distribute_json(folder_path, repo_obj) + # folder_path = "/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/tests/projects/p3/p3m3" + # folder_path = "/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/projects/p3/p3m1" + # 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/task.py b/joj3_config_generator/models/task.py index ad4f3cf..78bb8a6 100644 --- a/joj3_config_generator/models/task.py +++ b/joj3_config_generator/models/task.py @@ -11,6 +11,8 @@ class ParserResultDetail(BaseModel): stderr: Optional[bool] = False # Display stderr messages exitstatus: Optional[bool] = False +class ParserFile(BaseModel): + name: str = None class ParserDummy(BaseModel): comment: Optional[str] = "" @@ -62,11 +64,11 @@ class Stage(BaseModel): keyword: Optional[ParserKeyword] = ParserKeyword() clangtidy: Optional[ParserKeyword] = ParserKeyword() cppcheck: Optional[ParserKeyword] = ParserKeyword() - # FIXME: determine cpplint type cpplint: Optional[ParserKeyword] = ParserKeyword() result_detail: Optional[ParserResultDetail] = Field( ParserResultDetail(), alias="result-detail" ) + file: Optional[ParserFile] = ParserFile() skip: Optional[list[str]] = [] diff: Optional[ParserDiff] = ParserDiff() cases: Optional[Dict[str, "Stage"]] = {} diff --git a/joj3_config_generator/processers/repo.py b/joj3_config_generator/processers/repo.py index 8c1aec7..325d5af 100644 --- a/joj3_config_generator/processers/repo.py +++ b/joj3_config_generator/processers/repo.py @@ -114,6 +114,9 @@ def get_hash(immutable_files: list[str]) -> str: # input should be a list current_file_path = Path(__file__).resolve() project_root = current_file_path.parents[2] file_path = f"{project_root}/tests/immutable_p3-test/" + # file_path = f"{project_root}/tests/immutable_hteam/" + # file_path = f"{project_root}/tests/immutable_hteam-test/" + # file_path = f"{project_root}/tests/immutable_p3/" immutable_hash = [] for i, file in enumerate(immutable_files): immutable_files[i] = file_path + file.rsplit("/", 1)[-1] diff --git a/joj3_config_generator/processers/task.py b/joj3_config_generator/processers/task.py index c85b610..97ba77a 100644 --- a/joj3_config_generator/processers/task.py +++ b/joj3_config_generator/processers/task.py @@ -10,9 +10,15 @@ def get_conf_stage( ) -> result.StageDetail: conf_stage = result.StageDetail( name=task_stage.name if task_stage.name is not None else "", + # FIXME: to be deterined the way + # group=( + # re.search(r'\[([^\[\]]+)\]', task_stage.name).group(1) + # if (task_stage.name is not None and re.search(r'\[([^\[\]]+)\]', task_stage.name)) + # else "" + # ), group=( - re.search(r'\[([^\[\]]+)\]', task_stage.name).group(1) - if (task_stage.name is not None and re.search(r'\[([^\[\]]+)\]', task_stage.name)) + task_stage.group + if (task_stage.group is not None) else "" ), executor=result.Executor( @@ -61,7 +67,8 @@ def get_executorWithConfig( result.CmdFile(src=f"/home/tt/.config/joj/{file}") if not file.endswith("main.cpp") else result.CmdFile( - src=f"/home/tt/.config/joj/homework/h7/e3/ex3-main.cpp" + # src=f"/home/tt/.config/joj/homework/h7/e3/ex3-main.cpp" + src=f"/home/tt/.config/joj/homework/h8/e1/ex1-main.cpp" ) ) for file in copy_in_files @@ -142,7 +149,7 @@ def fix_keyword( else: continue - keyword_parser_.with_.update({"matches": keyword_weight}) + keyword_parser_.with_.update({"matches": keyword_weight, "fullscore": 0, "minscore": -1000, "files": ["stdout", "stderr"]}) else: continue return conf_stage @@ -206,7 +213,22 @@ def fix_dummy( continue return conf_stage - +def fix_file(task_stage: task.Stage, conf_stage: result.StageDetail) -> result.StageDetail: + file_parser = ["file"] + if task_stage.parsers is not None: + for parser in task_stage.parsers: + if parser in file_parser: + file_parser_ = next(p for p in conf_stage.parsers if p.name == parser) + if task_stage.file is not None: + file_parser_.with_.update( + { + "name": task_stage.file.name + } + ) + else: + continue + return conf_stage + def fix_diff( task_stage: task.Stage, conf_stage: result.StageDetail, task_conf: task.Config ) -> result.StageDetail: diff --git a/tests/convert/basic/repo.toml b/tests/convert/basic/repo.toml index ad6cb6f..1322fa1 100644 --- a/tests/convert/basic/repo.toml +++ b/tests/convert/basic/repo.toml @@ -4,10 +4,20 @@ release_tags = ["v1.0", "v2.0", "final"] sandbox_token = "test" max_total_score = 100 + +# for projects +#groups.name = ["build", "run"] +#groups.max_count = [8, 5] +#groups.time_period_hour = [24, 24] + + +# for tests groups.name = ["joj", "run"] groups.max_count = [1000, 1000] groups.time_period_hour = [24, 24] [files] -required = ["README.md" ] +# projects +# required = ["README.md", "Changelog.md"] +required = ["README.md"] immutable = [".gitignore", ".gitattributes",".gitea/workflows/push.yaml", ".gitea/workflows/release.yaml" ] diff --git a/tests/convert/basic/repo.toml.bak b/tests/convert/basic/repo.toml.bak deleted file mode 100644 index bb9818b..0000000 --- a/tests/convert/basic/repo.toml.bak +++ /dev/null @@ -1,10 +0,0 @@ -teaching_team = ["prof_john", "ta_alice", "ta_bob"] -max_size = 50.5 -release_tags = ["v1.0", "v2.0", "final"] -sandbox_token = "test" - -[files] -whitelist_patterns = ["*.py", "*.txt", "*.md"] -whitelist_file = ".whitelist" -required = [ "Changelog.md", "Readme.md" ] -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 e7207de..e0383f2 100644 --- a/tests/convert/basic/task.json +++ b/tests/convert/basic/task.json @@ -10,6 +10,7 @@ "stages": [ { "name": "healthcheck", + "group": "", "executor": { "name": "sandbox", "with": { @@ -19,7 +20,7 @@ "-root=.", "-repoSize=50.5", "-meta=README.md", - "-checkFileSumList=a5b63323a692d3d8b952442969649b4f823d58dae26429494f613df160710dfc,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,f6740081487ca34963a005209e2e9adfdf6f3561719af082d40fe80145e0cceb,ad7ba6fbee5d80e018e4190e31bd842553d540044f0faf13592d73cef93a061b", + "-checkFileSumList=a7bda693bf603a20b0ecf1bcdae62c7268596313e7efffcbc8a6fe393e3397b6,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,0f786177a68c4553043d0c8f8235908730249cc84c5bbbbbe0dc05fad82ac5ca,50682ce666d694d2cf11aebb3a0d0c2e2d6649562dde38fbcedff006484bf994", "-checkFileNameList=.gitignore,.gitattributes,.gitea/workflows/push.yaml,.gitea/workflows/release.yaml" ], "env": [ @@ -76,7 +77,8 @@ ] }, { - "name": "Compilation", + "name": "[cq] Compilation", + "group": "", "executor": { "name": "sandbox", "with": { @@ -195,7 +197,13 @@ "with": { "score": 0, "comment": "Congratulations! Your code compiled successfully.", - "forceQuitOnNotAccepted": false + "forceQuitOnNotAccepted": true + } + }, + { + "name": "file", + "with": { + "name": "stdout" } } ] @@ -209,6 +217,19 @@ "gradingRepoName": "engr151-joj", "skipIssue": false, "skipScoreboard": false, - "skipFailedTable": false + "skipFailedTable": false, + "maxTotalScore": 100, + "groups": [ + { + "name": "joj", + "maxCount": 1000, + "timePeriodHour": 24 + }, + { + "name": "run", + "maxCount": 1000, + "timePeriodHour": 24 + } + ] } } diff --git a/tests/convert/basic/task.toml b/tests/convert/basic/task.toml index 09ce72c..bc90ccb 100644 --- a/tests/convert/basic/task.toml +++ b/tests/convert/basic/task.toml @@ -6,15 +6,17 @@ release.deadline = 2024-12-30 23:59:59+08:00 release.stages = [ "compile" ] [[stages]] -name = "Compilation" +name = "[cq] Compilation" command = "./tools/compile" # eg. script running cmake commands 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/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 ex -parsers = [ "result-detail", "result-status" ] +parsers = [ "result-detail", "result-status", "file" ] result-status.comment = "Congratulations! Your code compiled successfully." result-detail.exitstatus = true result-detail.stderr = true result-detail.time = false result-detail.mem = false +result-status.forcequit = true +file.name = "stdout" diff --git a/tests/convert/basic/task.toml.bak b/tests/convert/basic/task.toml.bak deleted file mode 100644 index 118247d..0000000 --- a/tests/convert/basic/task.toml.bak +++ /dev/null @@ -1,137 +0,0 @@ -# p2 repo config - -task="p2 m3" # task name - -release.deadline = 2024-10-12 23:59:00+08:00 -release.stages = [ "compile" ] - -[files] -immutable = [".gitignore", ".gitattributes", ".gitea/workflows/push.yaml", ".gitea/workflows/release.yaml" ] -required = [ "Changelog.md", "Readme.md" ] - -[[stages]] -name = "Abuse of strings detected" -command = "./strdetect src/" -files.import = [ "tools/strdetec" ] - -parsers = [ "result-status" ] - - -[[stages]] -name = "Compilation" -command = "compile" -files.import = [ "tools/compile" ] -files.export = [ "build/onecard", "build/asan", "build/ubsan", "build/msan", "build/compile_commands.json" ] - -parsers = [ "result-detail", "dummy", "result-status" ] -result-status.comment = "Congratulations! Your code compiled successfully." -result-status.score = 1 -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] Filelength" -command = "./file-length 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 build" -files.import = [ "projects/p2/.clang-tidy", "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,-readability/todo,-build/include_subdir,-build/header_guard --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 - -[[stages]] -name = "[run] onecard" -group = "run" -command="./onecard -a" -files.import = [ "build/onecard" ] - -parsers = [ "result-status", "result-detail" ] -result-status.score = 1 -result-status.forcequit = false -result-detail.exitstatus = true -result-detail.stderr = true - -[[stages]] -name = "[run] address sanitizer" -group = "run" -command="./asan -a" -files.import = [ "build/asan" ] - -parsers = [ "result-status", "result-detail" ] -result-status.score = 1 -result-status.forcequit = false -result-detail.exitstatus = true -result-detail.stderr = true - -[[stages]] -name = "[run] memory sanitizer" -group = "run" -command="./msan -a" -files.import = [ "build/msan" ] - -parsers = [ "result-status", "result-detail" ] -result-status.score = 1 -result-status.forcequit = false -result-detail.exitstatus = true -result-detail.stderr = true - -[[stages]] -name = "[run] undefined behavior sanitizer" -command="./ubsan -a" -files.import = [ "build/ubsan" ] - -parsers = [ "result-status", "result-detail" ] -result-status.score = 1 -result-status.forcequit = false -result-detail.exitstatus = true -result-detail.stderr = true diff --git a/tests/immutable_hteam-test/.gitattributes b/tests/immutable_hteam-test/.gitattributes new file mode 100644 index 0000000..b910c4a --- /dev/null +++ b/tests/immutable_hteam-test/.gitattributes @@ -0,0 +1,33 @@ +*.avi filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.djvu filter=lfs diff=lfs merge=lfs -text +*.doc filter=lfs diff=lfs merge=lfs -text +*.docx filter=lfs diff=lfs merge=lfs -text +*.epub filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.ipynb filter=lfs diff=lfs merge=lfs -text +*.jpeg filter=lfs diff=lfs merge=lfs -text +*.JPEG filter=lfs diff=lfs merge=lfs -text +*.jpg filter=lfs diff=lfs merge=lfs -text +*.JPG filter=lfs diff=lfs merge=lfs -text +*.mkv filter=lfs diff=lfs merge=lfs -text +*.mp4 filter=lfs diff=lfs merge=lfs -text +*.ods filter=lfs diff=lfs merge=lfs -text +*.odt filter=lfs diff=lfs merge=lfs -text +*.otf filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.PDF filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.PNG filter=lfs diff=lfs merge=lfs -text +*.ppt filter=lfs diff=lfs merge=lfs -text +*.pptx filter=lfs diff=lfs merge=lfs -text +*.ps filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.webm filter=lfs diff=lfs merge=lfs -text +*.xls filter=lfs diff=lfs merge=lfs -text +*.xlsx filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text diff --git a/tests/immutable_hteam-test/.gitignore b/tests/immutable_hteam-test/.gitignore new file mode 100644 index 0000000..754f776 --- /dev/null +++ b/tests/immutable_hteam-test/.gitignore @@ -0,0 +1,23 @@ +################################ +## White list based gitignore ## +################################ + +# forbidden +* +.* + +# allowed +!.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_hteam-test/push.yaml b/tests/immutable_hteam-test/push.yaml new file mode 100644 index 0000000..0b35d39 --- /dev/null +++ b/tests/immutable_hteam-test/push.yaml @@ -0,0 +1,19 @@ +name: Run JOJ3 on Push +on: [push] + +jobs: + run: + container: + image: focs.ji.sjtu.edu.cn:5000/gitea/runner-images:focs-ubuntu-latest-slim + volumes: + - /home/tt/.config:/home/tt/.config + - /home/tt/.cache:/home/tt/.cache + - /home/tt/.ssh:/home/tt/.ssh + steps: + - name: Check out repository code + uses: https://gitea.com/BoYanZh/checkout@focs + with: + fetch-depth: 0 + - name: run joj3 + run: | + sudo -E -u tt joj3 -conf-root /home/tt/.config/joj/tests/homework diff --git a/tests/immutable_hteam-test/release.yaml b/tests/immutable_hteam-test/release.yaml new file mode 100644 index 0000000..6438234 --- /dev/null +++ b/tests/immutable_hteam-test/release.yaml @@ -0,0 +1,21 @@ +name: Run JOJ3 on Release +on: + release: + types: [published] + +jobs: + run: + container: + image: focs.ji.sjtu.edu.cn:5000/gitea/runner-images:focs-ubuntu-latest-slim + volumes: + - /home/tt/.config:/home/tt/.config + - /home/tt/.cache:/home/tt/.cache + - /home/tt/.ssh:/home/tt/.ssh + steps: + - name: Check out repository code + uses: https://gitea.com/BoYanZh/checkout@focs + with: + fetch-depth: 0 + - name: run joj3 + run: | + sudo -E -u tt joj3 -conf-root "/home/tt/.config/joj/tests/homework" -conf-name "conf-release.json" -tag "${{ github.ref_name }}" diff --git a/tests/immutable_hteam/.gitattributes b/tests/immutable_hteam/.gitattributes new file mode 100644 index 0000000..b910c4a --- /dev/null +++ b/tests/immutable_hteam/.gitattributes @@ -0,0 +1,33 @@ +*.avi filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.djvu filter=lfs diff=lfs merge=lfs -text +*.doc filter=lfs diff=lfs merge=lfs -text +*.docx filter=lfs diff=lfs merge=lfs -text +*.epub filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.ipynb filter=lfs diff=lfs merge=lfs -text +*.jpeg filter=lfs diff=lfs merge=lfs -text +*.JPEG filter=lfs diff=lfs merge=lfs -text +*.jpg filter=lfs diff=lfs merge=lfs -text +*.JPG filter=lfs diff=lfs merge=lfs -text +*.mkv filter=lfs diff=lfs merge=lfs -text +*.mp4 filter=lfs diff=lfs merge=lfs -text +*.ods filter=lfs diff=lfs merge=lfs -text +*.odt filter=lfs diff=lfs merge=lfs -text +*.otf filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.PDF filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.PNG filter=lfs diff=lfs merge=lfs -text +*.ppt filter=lfs diff=lfs merge=lfs -text +*.pptx filter=lfs diff=lfs merge=lfs -text +*.ps filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.webm filter=lfs diff=lfs merge=lfs -text +*.xls filter=lfs diff=lfs merge=lfs -text +*.xlsx filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text diff --git a/tests/immutable_hteam/.gitignore b/tests/immutable_hteam/.gitignore new file mode 100644 index 0000000..754f776 --- /dev/null +++ b/tests/immutable_hteam/.gitignore @@ -0,0 +1,23 @@ +################################ +## White list based gitignore ## +################################ + +# forbidden +* +.* + +# allowed +!.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_hteam/push.yaml b/tests/immutable_hteam/push.yaml new file mode 100644 index 0000000..d7cd314 --- /dev/null +++ b/tests/immutable_hteam/push.yaml @@ -0,0 +1,19 @@ +name: Run JOJ3 on Push +on: [push] + +jobs: + run: + container: + image: focs.ji.sjtu.edu.cn:5000/gitea/runner-images:focs-ubuntu-latest-slim + volumes: + - /home/tt/.config:/home/tt/.config + - /home/tt/.cache:/home/tt/.cache + - /home/tt/.ssh:/home/tt/.ssh + steps: + - name: Check out repository code + uses: https://gitea.com/BoYanZh/checkout@focs + with: + fetch-depth: 0 + - name: run joj3 + run: | + sudo -E -u tt joj3 -conf-root /home/tt/.config/joj/homework diff --git a/tests/immutable_hteam/release.yaml b/tests/immutable_hteam/release.yaml new file mode 100644 index 0000000..36ef637 --- /dev/null +++ b/tests/immutable_hteam/release.yaml @@ -0,0 +1,21 @@ +name: Run JOJ3 on Release +on: + release: + types: [published] + +jobs: + run: + container: + image: focs.ji.sjtu.edu.cn:5000/gitea/runner-images:focs-ubuntu-latest-slim + volumes: + - /home/tt/.config:/home/tt/.config + - /home/tt/.cache:/home/tt/.cache + - /home/tt/.ssh:/home/tt/.ssh + steps: + - name: Check out repository code + uses: https://gitea.com/BoYanZh/checkout@focs + with: + fetch-depth: 0 + - name: run joj3 + run: | + sudo -E -u tt joj3 -conf-root "/home/tt/.config/joj/homework" -conf-name "conf-release.json" -tag "${{ github.ref_name }}" diff --git a/tests/immutable_p3-test/.gitattributes b/tests/immutable_p3-test/.gitattributes new file mode 100644 index 0000000..b910c4a --- /dev/null +++ b/tests/immutable_p3-test/.gitattributes @@ -0,0 +1,33 @@ +*.avi filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.djvu filter=lfs diff=lfs merge=lfs -text +*.doc filter=lfs diff=lfs merge=lfs -text +*.docx filter=lfs diff=lfs merge=lfs -text +*.epub filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.ipynb filter=lfs diff=lfs merge=lfs -text +*.jpeg filter=lfs diff=lfs merge=lfs -text +*.JPEG filter=lfs diff=lfs merge=lfs -text +*.jpg filter=lfs diff=lfs merge=lfs -text +*.JPG filter=lfs diff=lfs merge=lfs -text +*.mkv filter=lfs diff=lfs merge=lfs -text +*.mp4 filter=lfs diff=lfs merge=lfs -text +*.ods filter=lfs diff=lfs merge=lfs -text +*.odt filter=lfs diff=lfs merge=lfs -text +*.otf filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.PDF filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.PNG filter=lfs diff=lfs merge=lfs -text +*.ppt filter=lfs diff=lfs merge=lfs -text +*.pptx filter=lfs diff=lfs merge=lfs -text +*.ps filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.webm filter=lfs diff=lfs merge=lfs -text +*.xls filter=lfs diff=lfs merge=lfs -text +*.xlsx filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text diff --git a/tests/immutable_p3-test/.gitignore b/tests/immutable_p3-test/.gitignore new file mode 100644 index 0000000..1ecf413 --- /dev/null +++ b/tests/immutable_p3-test/.gitignore @@ -0,0 +1,29 @@ +################################ +## White list based gitignore ## +################################ + +# forbidden +* +.* + +# allowed +!.gitignore +!.gitattributes +!.gitea/ +!.gitea/issue_template/ +!.gitea/workflows/ +!src/ +src/* +!src/ipa +!src/ipa/*.h +!src/ipa/*.cpp +!src/ipa/Makefile +!src/pms +!src/pms/*.cpp +!src/pms/*.h +!src/pms/Makefile + +!CMakeLists.txt +!Makefile +!*.md +!*.yaml diff --git a/tests/immutable_p3-test/push.yaml b/tests/immutable_p3-test/push.yaml new file mode 100644 index 0000000..ff84b08 --- /dev/null +++ b/tests/immutable_p3-test/push.yaml @@ -0,0 +1,20 @@ +name: Run JOJ3 on Push +on: [push] + +jobs: + run: + container: + image: focs.ji.sjtu.edu.cn:5000/gitea/runner-images:focs-ubuntu-latest-slim + volumes: + - /home/tt/.config:/home/tt/.config + - /home/tt/.cache:/home/tt/.cache + - /home/tt/.ssh:/home/tt/.ssh + steps: + - name: Check out repository code + uses: https://gitea.com/BoYanZh/checkout@focs + with: + fetch-depth: 0 + - name: run joj3 + run: | + sudo -E -u tt joj3 -conf-root /home/tt/.config/joj/tests/projects/p3 + diff --git a/tests/immutable_p3-test/release.yaml b/tests/immutable_p3-test/release.yaml new file mode 100644 index 0000000..ae66cf6 --- /dev/null +++ b/tests/immutable_p3-test/release.yaml @@ -0,0 +1,22 @@ +name: Run JOJ3 on Release +on: + release: + types: [published] + +jobs: + run: + container: + image: focs.ji.sjtu.edu.cn:5000/gitea/runner-images:focs-ubuntu-latest-slim + volumes: + - /home/tt/.config:/home/tt/.config + - /home/tt/.cache:/home/tt/.cache + - /home/tt/.ssh:/home/tt/.ssh + steps: + - name: Check out repository code + uses: https://gitea.com/BoYanZh/checkout@focs + with: + fetch-depth: 0 + - name: run joj3 + run: | + sudo -E -u tt joj3 -conf-root "/home/tt/.config/joj/tests/projects/p3" -conf-name "conf-release.json" -tag "${{ github.ref_name }}" + diff --git a/tests/immutable_p3/.gitattributes b/tests/immutable_p3/.gitattributes new file mode 100644 index 0000000..b910c4a --- /dev/null +++ b/tests/immutable_p3/.gitattributes @@ -0,0 +1,33 @@ +*.avi filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.djvu filter=lfs diff=lfs merge=lfs -text +*.doc filter=lfs diff=lfs merge=lfs -text +*.docx filter=lfs diff=lfs merge=lfs -text +*.epub filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.ipynb filter=lfs diff=lfs merge=lfs -text +*.jpeg filter=lfs diff=lfs merge=lfs -text +*.JPEG filter=lfs diff=lfs merge=lfs -text +*.jpg filter=lfs diff=lfs merge=lfs -text +*.JPG filter=lfs diff=lfs merge=lfs -text +*.mkv filter=lfs diff=lfs merge=lfs -text +*.mp4 filter=lfs diff=lfs merge=lfs -text +*.ods filter=lfs diff=lfs merge=lfs -text +*.odt filter=lfs diff=lfs merge=lfs -text +*.otf filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.PDF filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.PNG filter=lfs diff=lfs merge=lfs -text +*.ppt filter=lfs diff=lfs merge=lfs -text +*.pptx filter=lfs diff=lfs merge=lfs -text +*.ps filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.webm filter=lfs diff=lfs merge=lfs -text +*.xls filter=lfs diff=lfs merge=lfs -text +*.xlsx filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text diff --git a/tests/immutable_p3/.gitignore b/tests/immutable_p3/.gitignore new file mode 100644 index 0000000..1ecf413 --- /dev/null +++ b/tests/immutable_p3/.gitignore @@ -0,0 +1,29 @@ +################################ +## White list based gitignore ## +################################ + +# forbidden +* +.* + +# allowed +!.gitignore +!.gitattributes +!.gitea/ +!.gitea/issue_template/ +!.gitea/workflows/ +!src/ +src/* +!src/ipa +!src/ipa/*.h +!src/ipa/*.cpp +!src/ipa/Makefile +!src/pms +!src/pms/*.cpp +!src/pms/*.h +!src/pms/Makefile + +!CMakeLists.txt +!Makefile +!*.md +!*.yaml diff --git a/tests/immutable_p3/push.yaml b/tests/immutable_p3/push.yaml new file mode 100644 index 0000000..80eb298 --- /dev/null +++ b/tests/immutable_p3/push.yaml @@ -0,0 +1,20 @@ +name: Run JOJ3 on Push +on: [push] + +jobs: + run: + container: + image: focs.ji.sjtu.edu.cn:5000/gitea/runner-images:focs-ubuntu-latest-slim + volumes: + - /home/tt/.config:/home/tt/.config + - /home/tt/.cache:/home/tt/.cache + - /home/tt/.ssh:/home/tt/.ssh + steps: + - name: Check out repository code + uses: https://gitea.com/BoYanZh/checkout@focs + with: + fetch-depth: 0 + - name: run joj3 + run: | + sudo -E -u tt joj3 -conf-root /home/tt/.config/joj/projects/p3 + diff --git a/tests/immutable_p3/release.yaml b/tests/immutable_p3/release.yaml new file mode 100644 index 0000000..a14f14b --- /dev/null +++ b/tests/immutable_p3/release.yaml @@ -0,0 +1,22 @@ +name: Run JOJ3 on Release +on: + release: + types: [published] + +jobs: + run: + container: + image: focs.ji.sjtu.edu.cn:5000/gitea/runner-images:focs-ubuntu-latest-slim + volumes: + - /home/tt/.config:/home/tt/.config + - /home/tt/.cache:/home/tt/.cache + - /home/tt/.ssh:/home/tt/.ssh + steps: + - name: Check out repository code + uses: https://gitea.com/BoYanZh/checkout@focs + with: + fetch-depth: 0 + - name: run joj3 + run: | + sudo -E -u tt joj3 -conf-root "/home/tt/.config/joj/projects/p3" -conf-name "conf-release.json" -tag "${{ github.ref_name }}" +