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,6 +213,21 @@ 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
|
||||||
|
|
|
@ -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]
|
||||||
|
# projects
|
||||||
|
# required = ["README.md", "Changelog.md"]
|
||||||
required = ["README.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