feat: add file parser construction
This commit is contained in:
		
							parent
							
								
									8eb0443562
								
							
						
					
					
						commit
						1c48d9794b
					
				|  | @ -13,6 +13,7 @@ from joj3_config_generator.processers.task import ( | ||||||
|     fix_diff, |     fix_diff, | ||||||
|     fix_dummy, |     fix_dummy, | ||||||
|     fix_keyword, |     fix_keyword, | ||||||
|  |     fix_file, | ||||||
|     fix_result_detail, |     fix_result_detail, | ||||||
|     get_conf_stage, |     get_conf_stage, | ||||||
|     get_executorWithConfig, |     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_result_detail(task_stage, conf_stage) | ||||||
|         conf_stage = fix_dummy(task_stage, conf_stage) |         conf_stage = fix_dummy(task_stage, conf_stage) | ||||||
|         conf_stage = fix_keyword(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) |         conf_stage = fix_diff(task_stage, conf_stage, task_conf) | ||||||
|         result_conf.stage.stages.append(conf_stage) |         result_conf.stage.stages.append(conf_stage) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -71,14 +71,15 @@ def convert(root: Path = Path(".")) -> Dict[str, Any]: | ||||||
|         result_file.write("\n") |         result_file.write("\n") | ||||||
| 
 | 
 | ||||||
|     # FIXME: change the path to the server |     # 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 = f"/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/tests/homework/{homework_name}" | ||||||
|     # folder_path = ( |     # 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 |     # for projects | ||||||
|     folder_path = "/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/tests/projects/p3/p3m1" |     # folder_path = "/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/tests/projects/p3/p3m3" | ||||||
|     assert os.path.exists(folder_path), f"there exists no {folder_path}" |     # folder_path = "/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/projects/p3/p3m1" | ||||||
|     distribute_json(folder_path, repo_obj) |     # assert os.path.exists(folder_path), f"there exists no {folder_path}" | ||||||
|  |     # distribute_json(folder_path, repo_obj) | ||||||
|     return result_dict |     return result_dict | ||||||
|  |  | ||||||
|  | @ -11,6 +11,8 @@ class ParserResultDetail(BaseModel): | ||||||
|     stderr: Optional[bool] = False  # Display stderr messages |     stderr: Optional[bool] = False  # Display stderr messages | ||||||
|     exitstatus: Optional[bool] = False |     exitstatus: Optional[bool] = False | ||||||
| 
 | 
 | ||||||
|  | class ParserFile(BaseModel): | ||||||
|  |     name: str = None | ||||||
| 
 | 
 | ||||||
| class ParserDummy(BaseModel): | class ParserDummy(BaseModel): | ||||||
|     comment: Optional[str] = "" |     comment: Optional[str] = "" | ||||||
|  | @ -62,11 +64,11 @@ class Stage(BaseModel): | ||||||
|     keyword: Optional[ParserKeyword] = ParserKeyword() |     keyword: Optional[ParserKeyword] = ParserKeyword() | ||||||
|     clangtidy: Optional[ParserKeyword] = ParserKeyword() |     clangtidy: Optional[ParserKeyword] = ParserKeyword() | ||||||
|     cppcheck: Optional[ParserKeyword] = ParserKeyword() |     cppcheck: Optional[ParserKeyword] = ParserKeyword() | ||||||
|     # FIXME: determine cpplint type |  | ||||||
|     cpplint: Optional[ParserKeyword] = ParserKeyword() |     cpplint: Optional[ParserKeyword] = ParserKeyword() | ||||||
|     result_detail: Optional[ParserResultDetail] = Field( |     result_detail: Optional[ParserResultDetail] = Field( | ||||||
|         ParserResultDetail(), alias="result-detail" |         ParserResultDetail(), alias="result-detail" | ||||||
|     ) |     ) | ||||||
|  |     file: Optional[ParserFile] = ParserFile() | ||||||
|     skip: Optional[list[str]] = [] |     skip: Optional[list[str]] = [] | ||||||
|     diff: Optional[ParserDiff] = ParserDiff() |     diff: Optional[ParserDiff] = ParserDiff() | ||||||
|     cases: Optional[Dict[str, "Stage"]] = {} |     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() |     current_file_path = Path(__file__).resolve() | ||||||
|     project_root = current_file_path.parents[2] |     project_root = current_file_path.parents[2] | ||||||
|     file_path = f"{project_root}/tests/immutable_p3-test/" |     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 = [] |     immutable_hash = [] | ||||||
|     for i, file in enumerate(immutable_files): |     for i, file in enumerate(immutable_files): | ||||||
|         immutable_files[i] = file_path + file.rsplit("/", 1)[-1] |         immutable_files[i] = file_path + file.rsplit("/", 1)[-1] | ||||||
|  |  | ||||||
|  | @ -10,9 +10,15 @@ def get_conf_stage( | ||||||
| ) -> result.StageDetail: | ) -> result.StageDetail: | ||||||
|     conf_stage = result.StageDetail( |     conf_stage = result.StageDetail( | ||||||
|         name=task_stage.name if task_stage.name is not None else "", |         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=( |         group=( | ||||||
|             re.search(r'\[([^\[\]]+)\]', task_stage.name).group(1) |             task_stage.group | ||||||
|             if (task_stage.name is not None and re.search(r'\[([^\[\]]+)\]', task_stage.name)) |             if (task_stage.group is not None) | ||||||
|             else "" |             else "" | ||||||
|         ), |         ), | ||||||
|         executor=result.Executor( |         executor=result.Executor( | ||||||
|  | @ -61,7 +67,8 @@ def get_executorWithConfig( | ||||||
|                     result.CmdFile(src=f"/home/tt/.config/joj/{file}") |                     result.CmdFile(src=f"/home/tt/.config/joj/{file}") | ||||||
|                     if not file.endswith("main.cpp") |                     if not file.endswith("main.cpp") | ||||||
|                     else result.CmdFile( |                     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 |                 for file in copy_in_files | ||||||
|  | @ -142,7 +149,7 @@ def fix_keyword( | ||||||
|                             else: |                             else: | ||||||
|                                 continue |                                 continue | ||||||
| 
 | 
 | ||||||
|                 keyword_parser_.with_.update({"matches": keyword_weight}) |                 keyword_parser_.with_.update({"matches": keyword_weight, "fullscore": 0, "minscore": -1000, "files": ["stdout", "stderr"]}) | ||||||
|             else: |             else: | ||||||
|                 continue |                 continue | ||||||
|     return conf_stage |     return conf_stage | ||||||
|  | @ -206,7 +213,22 @@ def fix_dummy( | ||||||
|                 continue |                 continue | ||||||
|     return conf_stage |     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( | def fix_diff( | ||||||
|     task_stage: task.Stage, conf_stage: result.StageDetail, task_conf: task.Config |     task_stage: task.Stage, conf_stage: result.StageDetail, task_conf: task.Config | ||||||
| ) -> result.StageDetail: | ) -> result.StageDetail: | ||||||
|  |  | ||||||
|  | @ -4,10 +4,20 @@ release_tags = ["v1.0", "v2.0", "final"] | ||||||
| sandbox_token = "test" | sandbox_token = "test" | ||||||
| 
 | 
 | ||||||
| max_total_score = 100 | 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.name = ["joj", "run"] | ||||||
| groups.max_count = [1000, 1000] | groups.max_count = [1000, 1000] | ||||||
| groups.time_period_hour = [24, 24] | groups.time_period_hour = [24, 24] | ||||||
| 
 | 
 | ||||||
| [files] | [files] | ||||||
| required = ["README.md" ] | # projects | ||||||
|  | # required = ["README.md", "Changelog.md"] | ||||||
|  | required = ["README.md"] | ||||||
| immutable = [".gitignore", ".gitattributes",".gitea/workflows/push.yaml", ".gitea/workflows/release.yaml" ] | 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": [ |         "stages": [ | ||||||
|             { |             { | ||||||
|                 "name": "healthcheck", |                 "name": "healthcheck", | ||||||
|  |                 "group": "", | ||||||
|                 "executor": { |                 "executor": { | ||||||
|                     "name": "sandbox", |                     "name": "sandbox", | ||||||
|                     "with": { |                     "with": { | ||||||
|  | @ -19,7 +20,7 @@ | ||||||
|                                 "-root=.", |                                 "-root=.", | ||||||
|                                 "-repoSize=50.5", |                                 "-repoSize=50.5", | ||||||
|                                 "-meta=README.md", |                                 "-meta=README.md", | ||||||
|                                 "-checkFileSumList=a5b63323a692d3d8b952442969649b4f823d58dae26429494f613df160710dfc,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,f6740081487ca34963a005209e2e9adfdf6f3561719af082d40fe80145e0cceb,ad7ba6fbee5d80e018e4190e31bd842553d540044f0faf13592d73cef93a061b", |                                 "-checkFileSumList=a7bda693bf603a20b0ecf1bcdae62c7268596313e7efffcbc8a6fe393e3397b6,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,0f786177a68c4553043d0c8f8235908730249cc84c5bbbbbe0dc05fad82ac5ca,50682ce666d694d2cf11aebb3a0d0c2e2d6649562dde38fbcedff006484bf994", | ||||||
|                                 "-checkFileNameList=.gitignore,.gitattributes,.gitea/workflows/push.yaml,.gitea/workflows/release.yaml" |                                 "-checkFileNameList=.gitignore,.gitattributes,.gitea/workflows/push.yaml,.gitea/workflows/release.yaml" | ||||||
|                             ], |                             ], | ||||||
|                             "env": [ |                             "env": [ | ||||||
|  | @ -76,7 +77,8 @@ | ||||||
|                 ] |                 ] | ||||||
|             }, |             }, | ||||||
|             { |             { | ||||||
|                 "name": "Compilation", |                 "name": "[cq] Compilation", | ||||||
|  |                 "group": "", | ||||||
|                 "executor": { |                 "executor": { | ||||||
|                     "name": "sandbox", |                     "name": "sandbox", | ||||||
|                     "with": { |                     "with": { | ||||||
|  | @ -195,7 +197,13 @@ | ||||||
|                         "with": { |                         "with": { | ||||||
|                             "score": 0, |                             "score": 0, | ||||||
|                             "comment": "Congratulations! Your code compiled successfully.", |                             "comment": "Congratulations! Your code compiled successfully.", | ||||||
|                             "forceQuitOnNotAccepted": false |                             "forceQuitOnNotAccepted": true | ||||||
|  |                         } | ||||||
|  |                     }, | ||||||
|  |                     { | ||||||
|  |                         "name": "file", | ||||||
|  |                         "with": { | ||||||
|  |                             "name": "stdout" | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 ] |                 ] | ||||||
|  | @ -209,6 +217,19 @@ | ||||||
|         "gradingRepoName": "engr151-joj", |         "gradingRepoName": "engr151-joj", | ||||||
|         "skipIssue": false, |         "skipIssue": false, | ||||||
|         "skipScoreboard": 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" ] | release.stages = [ "compile" ] | ||||||
| 
 | 
 | ||||||
| [[stages]] | [[stages]] | ||||||
| name = "Compilation" | name = "[cq] Compilation" | ||||||
| command = "./tools/compile" # eg. script running cmake commands | 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.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" ] | 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 | # compile parsers ex | ||||||
| parsers = [ "result-detail", "result-status" ] | parsers = [ "result-detail", "result-status", "file" ] | ||||||
| result-status.comment = "Congratulations! Your code compiled successfully." | result-status.comment = "Congratulations! Your code compiled successfully." | ||||||
| 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 | ||||||
|  | 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