dev #10
|  | @ -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) | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 | ||||
|         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) | ||||
| 
 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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"]] = {} | ||||
|  |  | |||
|  | @ -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] | ||||
|  |  | |||
|  | @ -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)) | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 
				
					
						李衍志523370910113
						commented  BTW, is this outdated? BTW, is this outdated? 
				
					
						张泊明518370910136
						commented  Never heard about this rule. Never heard about this rule. 
				
					
						李衍志523370910113
						commented  @manuel what would be the current intended rule for  @manuel what would be the current intended rule for `group`? 
				
					
						李衍志523370910113
						commented  seems current strategy is fine, resolved. seems current strategy is fine, resolved. | ||||
|         #     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 | ||||
| 
					
					bomingzh marked this conversation as resolved
					
						
						
							Outdated
						
					
				 
				
					
						张泊明518370910136
						commented  these fields do not exist now these fields do not exist now 
				
					
						李衍志523370910113
						commented  resolved resolved 
				
					
						张泊明518370910136
						commented  
			
				No description provided.
			
			 | ||||
|  | @ -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( | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 
				
					
						张泊明518370910136
						commented  When will it be None? When will it be None? | ||||
|                         { | ||||
|                             "name": task_stage.file.name | ||||
|                         } | ||||
|                     ) | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 
				
					
						张泊明518370910136
						commented  Just pass  Just pass `conf_stage.executor` to this function rather then the whole `conf_stage`. | ||||
|             else: | ||||
|                 continue | ||||
|     return  conf_stage | ||||
|              | ||||
| def fix_diff( | ||||
|     task_stage: task.Stage, conf_stage: result.StageDetail, task_conf: task.Config | ||||
| ) -> result.StageDetail: | ||||
|  |  | |||
|  | @ -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" ] | ||||
|  |  | |||
|  | @ -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" ] | ||||
|  | @ -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 | ||||
|             } | ||||
|         ] | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -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" | ||||
|  |  | |||
|  | @ -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 | ||||
							
								
								
									
										33
									
								
								tests/immutable_hteam-test/.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								tests/immutable_hteam-test/.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -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 | ||||
							
								
								
									
										23
									
								
								tests/immutable_hteam-test/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								tests/immutable_hteam-test/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -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 | ||||
							
								
								
									
										19
									
								
								tests/immutable_hteam-test/push.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								tests/immutable_hteam-test/push.yaml
									
									
									
									
									
										Normal file
									
								
							|  | @ -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                     | ||||
							
								
								
									
										21
									
								
								tests/immutable_hteam-test/release.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								tests/immutable_hteam-test/release.yaml
									
									
									
									
									
										Normal file
									
								
							|  | @ -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 }}"           | ||||
							
								
								
									
										33
									
								
								tests/immutable_hteam/.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								tests/immutable_hteam/.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -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 | ||||
							
								
								
									
										23
									
								
								tests/immutable_hteam/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								tests/immutable_hteam/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -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 | ||||
							
								
								
									
										19
									
								
								tests/immutable_hteam/push.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								tests/immutable_hteam/push.yaml
									
									
									
									
									
										Normal file
									
								
							|  | @ -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           | ||||
							
								
								
									
										21
									
								
								tests/immutable_hteam/release.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								tests/immutable_hteam/release.yaml
									
									
									
									
									
										Normal file
									
								
							|  | @ -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 }}" | ||||
							
								
								
									
										33
									
								
								tests/immutable_p3-test/.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								tests/immutable_p3-test/.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -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 | ||||
							
								
								
									
										29
									
								
								tests/immutable_p3-test/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								tests/immutable_p3-test/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -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 | ||||
							
								
								
									
										20
									
								
								tests/immutable_p3-test/push.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								tests/immutable_p3-test/push.yaml
									
									
									
									
									
										Normal file
									
								
							|  | @ -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                               | ||||
| 
 | ||||
							
								
								
									
										22
									
								
								tests/immutable_p3-test/release.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								tests/immutable_p3-test/release.yaml
									
									
									
									
									
										Normal file
									
								
							|  | @ -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 }}"                     | ||||
| 
 | ||||
							
								
								
									
										33
									
								
								tests/immutable_p3/.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								tests/immutable_p3/.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -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 | ||||
							
								
								
									
										29
									
								
								tests/immutable_p3/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								tests/immutable_p3/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -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 | ||||
							
								
								
									
										20
									
								
								tests/immutable_p3/push.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								tests/immutable_p3/push.yaml
									
									
									
									
									
										Normal file
									
								
							|  | @ -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                               | ||||
| 
 | ||||
							
								
								
									
										22
									
								
								tests/immutable_p3/release.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								tests/immutable_p3/release.yaml
									
									
									
									
									
										Normal file
									
								
							|  | @ -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 }}"                     | ||||
| 
 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	
why?
forgot to uncommented 😭
fixed