WIP: dev #6
| 
						 | 
				
			
			@ -13,6 +13,7 @@ from joj3_config_generator.processers.task import (
 | 
			
		|||
    fix_diff,
 | 
			
		||||
    fix_dummy,
 | 
			
		||||
    fix_keyword,
 | 
			
		||||
    fix_file,
 | 
			
		||||
    fix_result_detail,
 | 
			
		||||
    get_conf_stage,
 | 
			
		||||
    get_executorWithConfig,
 | 
			
		||||
| 
						 | 
				
			
			@ -47,6 +48,7 @@ def convert(repo_conf: repo.Config, task_conf: task.Config) -> result.Config:
 | 
			
		|||
        conf_stage = fix_result_detail(task_stage, conf_stage)
 | 
			
		||||
        conf_stage = fix_dummy(task_stage, conf_stage)
 | 
			
		||||
        conf_stage = fix_keyword(task_stage, conf_stage)
 | 
			
		||||
        conf_stage = fix_file(task_stage, conf_stage)
 | 
			
		||||
        conf_stage = fix_diff(task_stage, conf_stage, task_conf)
 | 
			
		||||
        result_conf.stage.stages.append(conf_stage)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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))
 | 
			
		||||
        #     else ""
 | 
			
		||||
        # ),
 | 
			
		||||
        group=(
 | 
			
		||||
            re.search(r'\[([^\[\]]+)\]', task_stage.name).group(1)
 | 
			
		||||
            if (task_stage.name is not None and re.search(r'\[([^\[\]]+)\]', task_stage.name))
 | 
			
		||||
            task_stage.group
 | 
			
		||||
            if (task_stage.group is not None)
 | 
			
		||||
            else ""
 | 
			
		||||
        ),
 | 
			
		||||
        executor=result.Executor(
 | 
			
		||||
| 
						 | 
				
			
			@ -61,7 +67,8 @@ def get_executorWithConfig(
 | 
			
		|||
                    result.CmdFile(src=f"/home/tt/.config/joj/{file}")
 | 
			
		||||
                    if not file.endswith("main.cpp")
 | 
			
		||||
                    else result.CmdFile(
 | 
			
		||||
                        src=f"/home/tt/.config/joj/homework/h7/e3/ex3-main.cpp"
 | 
			
		||||
                        # src=f"/home/tt/.config/joj/homework/h7/e3/ex3-main.cpp"
 | 
			
		||||
                        src=f"/home/tt/.config/joj/homework/h8/e1/ex1-main.cpp"
 | 
			
		||||
                    )
 | 
			
		||||
                )
 | 
			
		||||
                for file in copy_in_files
 | 
			
		||||
| 
						 | 
				
			
			@ -142,7 +149,7 @@ def fix_keyword(
 | 
			
		|||
                            else:
 | 
			
		||||
                                continue
 | 
			
		||||
 | 
			
		||||
                keyword_parser_.with_.update({"matches": keyword_weight})
 | 
			
		||||
                keyword_parser_.with_.update({"matches": keyword_weight, "fullscore": 0, "minscore": -1000, "files": ["stdout", "stderr"]})
 | 
			
		||||
            else:
 | 
			
		||||
                continue
 | 
			
		||||
    return conf_stage
 | 
			
		||||
| 
						 | 
				
			
			@ -206,7 +213,22 @@ def fix_dummy(
 | 
			
		|||
                continue
 | 
			
		||||
    return conf_stage
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def fix_file(task_stage: task.Stage, conf_stage: result.StageDetail) -> result.StageDetail:
 | 
			
		||||
    file_parser = ["file"]
 | 
			
		||||
    if task_stage.parsers is not None:
 | 
			
		||||
        for parser in task_stage.parsers:
 | 
			
		||||
            if parser in file_parser:
 | 
			
		||||
                file_parser_ = next(p for p in conf_stage.parsers if p.name == parser)
 | 
			
		||||
                if task_stage.file is not None:
 | 
			
		||||
                    file_parser_.with_.update(
 | 
			
		||||
                        {
 | 
			
		||||
                            "name": task_stage.file.name
 | 
			
		||||
                        }
 | 
			
		||||
                    )
 | 
			
		||||
            else:
 | 
			
		||||
                continue
 | 
			
		||||
    return  conf_stage
 | 
			
		||||
            
 | 
			
		||||
def fix_diff(
 | 
			
		||||
    task_stage: task.Stage, conf_stage: result.StageDetail, task_conf: task.Config
 | 
			
		||||
) -> result.StageDetail:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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