dev #10
|
@ -13,6 +13,7 @@ from joj3_config_generator.processers.task import (
|
|||
fix_diff,
|
||||
fix_dummy,
|
||||
fix_keyword,
|
||||
fix_file,
|
||||
fix_result_detail,
|
||||
get_conf_stage,
|
||||
get_executorWithConfig,
|
||||
|
@ -47,6 +48,7 @@ def convert(repo_conf: repo.Config, task_conf: task.Config) -> result.Config:
|
|||
conf_stage = fix_result_detail(task_stage, conf_stage)
|
||||
jon-lee marked this conversation as resolved
Outdated
|
||||
conf_stage = fix_dummy(task_stage, conf_stage)
|
||||
conf_stage = fix_keyword(task_stage, conf_stage)
|
||||
conf_stage = fix_file(task_stage, conf_stage)
|
||||
conf_stage = fix_diff(task_stage, conf_stage, task_conf)
|
||||
result_conf.stage.stages.append(conf_stage)
|
||||
|
||||
|
|
|
@ -71,14 +71,15 @@ def convert(root: Path = Path(".")) -> Dict[str, Any]:
|
|||
result_file.write("\n")
|
||||
|
||||
# FIXME: change the path to the server
|
||||
homework_name = "h8"
|
||||
# homework_name = "h8"
|
||||
# folder_path = f"/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/tests/homework/{homework_name}"
|
||||
# folder_path = (
|
||||
# "/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/tests/homework"
|
||||
# "/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/homework/h8"
|
||||
# )
|
||||
folder_path = "/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/homework/h7"
|
||||
# folder_path = "/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/homework/h7"
|
||||
# for projects
|
||||
folder_path = "/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/tests/projects/p3/p3m1"
|
||||
assert os.path.exists(folder_path), f"there exists no {folder_path}"
|
||||
distribute_json(folder_path, repo_obj)
|
||||
# folder_path = "/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/tests/projects/p3/p3m3"
|
||||
# folder_path = "/mnt/c/Users/Nuvole/Desktop/engr151-joj/home/tt/.config/joj/projects/p3/p3m1"
|
||||
# assert os.path.exists(folder_path), f"there exists no {folder_path}"
|
||||
# distribute_json(folder_path, repo_obj)
|
||||
return result_dict
|
||||
|
|
|
@ -11,6 +11,8 @@ class ParserResultDetail(BaseModel):
|
|||
stderr: Optional[bool] = False # Display stderr messages
|
||||
exitstatus: Optional[bool] = False
|
||||
|
||||
class ParserFile(BaseModel):
|
||||
name: str = None
|
||||
|
||||
class ParserDummy(BaseModel):
|
||||
comment: Optional[str] = ""
|
||||
|
@ -62,11 +64,11 @@ class Stage(BaseModel):
|
|||
keyword: Optional[ParserKeyword] = ParserKeyword()
|
||||
clangtidy: Optional[ParserKeyword] = ParserKeyword()
|
||||
cppcheck: Optional[ParserKeyword] = ParserKeyword()
|
||||
# FIXME: determine cpplint type
|
||||
cpplint: Optional[ParserKeyword] = ParserKeyword()
|
||||
result_detail: Optional[ParserResultDetail] = Field(
|
||||
ParserResultDetail(), alias="result-detail"
|
||||
)
|
||||
file: Optional[ParserFile] = ParserFile()
|
||||
skip: Optional[list[str]] = []
|
||||
diff: Optional[ParserDiff] = ParserDiff()
|
||||
cases: Optional[Dict[str, "Stage"]] = {}
|
||||
|
|
|
@ -114,6 +114,9 @@ def get_hash(immutable_files: list[str]) -> str: # input should be a list
|
|||
current_file_path = Path(__file__).resolve()
|
||||
project_root = current_file_path.parents[2]
|
||||
file_path = f"{project_root}/tests/immutable_p3-test/"
|
||||
# file_path = f"{project_root}/tests/immutable_hteam/"
|
||||
# file_path = f"{project_root}/tests/immutable_hteam-test/"
|
||||
# file_path = f"{project_root}/tests/immutable_p3/"
|
||||
immutable_hash = []
|
||||
for i, file in enumerate(immutable_files):
|
||||
immutable_files[i] = file_path + file.rsplit("/", 1)[-1]
|
||||
|
|
|
@ -10,9 +10,15 @@ def get_conf_stage(
|
|||
) -> result.StageDetail:
|
||||
conf_stage = result.StageDetail(
|
||||
name=task_stage.name if task_stage.name is not None else "",
|
||||
# FIXME: to be deterined the way
|
||||
# group=(
|
||||
# re.search(r'\[([^\[\]]+)\]', task_stage.name).group(1)
|
||||
# if (task_stage.name is not None and re.search(r'\[([^\[\]]+)\]', task_stage.name))
|
||||
jon-lee marked this conversation as resolved
Outdated
李衍志523370910113
commented
BTW, is this outdated? BTW, is this outdated?
张泊明518370910136
commented
Never heard about this rule. Never heard about this rule.
李衍志523370910113
commented
@manuel what would be the current intended rule for @manuel what would be the current intended rule for `group`?
李衍志523370910113
commented
seems current strategy is fine, resolved. seems current strategy is fine, resolved.
|
||||
# else ""
|
||||
# ),
|
||||
group=(
|
||||
re.search(r'\[([^\[\]]+)\]', task_stage.name).group(1)
|
||||
if (task_stage.name is not None and re.search(r'\[([^\[\]]+)\]', task_stage.name))
|
||||
task_stage.group
|
||||
if (task_stage.group is not None)
|
||||
else ""
|
||||
),
|
||||
executor=result.Executor(
|
||||
|
@ -61,7 +67,8 @@ def get_executorWithConfig(
|
|||
result.CmdFile(src=f"/home/tt/.config/joj/{file}")
|
||||
if not file.endswith("main.cpp")
|
||||
else result.CmdFile(
|
||||
src=f"/home/tt/.config/joj/homework/h7/e3/ex3-main.cpp"
|
||||
# src=f"/home/tt/.config/joj/homework/h7/e3/ex3-main.cpp"
|
||||
src=f"/home/tt/.config/joj/homework/h8/e1/ex1-main.cpp"
|
||||
)
|
||||
)
|
||||
for file in copy_in_files
|
||||
|
@ -142,7 +149,7 @@ def fix_keyword(
|
|||
else:
|
||||
continue
|
||||
|
||||
keyword_parser_.with_.update({"matches": keyword_weight})
|
||||
keyword_parser_.with_.update({"matches": keyword_weight, "fullscore": 0, "minscore": -1000, "files": ["stdout", "stderr"]})
|
||||
else:
|
||||
continue
|
||||
return conf_stage
|
||||
bomingzh marked this conversation as resolved
Outdated
张泊明518370910136
commented
these fields do not exist now these fields do not exist now
李衍志523370910113
commented
resolved resolved
张泊明518370910136
commented
No description provided.
|
||||
|
@ -206,7 +213,22 @@ def fix_dummy(
|
|||
continue
|
||||
return conf_stage
|
||||
|
||||
|
||||
def fix_file(task_stage: task.Stage, conf_stage: result.StageDetail) -> result.StageDetail:
|
||||
file_parser = ["file"]
|
||||
if task_stage.parsers is not None:
|
||||
for parser in task_stage.parsers:
|
||||
if parser in file_parser:
|
||||
file_parser_ = next(p for p in conf_stage.parsers if p.name == parser)
|
||||
if task_stage.file is not None:
|
||||
file_parser_.with_.update(
|
||||
jon-lee marked this conversation as resolved
Outdated
张泊明518370910136
commented
When will it be None? When will it be None?
|
||||
{
|
||||
"name": task_stage.file.name
|
||||
}
|
||||
)
|
||||
jon-lee marked this conversation as resolved
Outdated
张泊明518370910136
commented
Just pass Just pass `conf_stage.executor` to this function rather then the whole `conf_stage`.
|
||||
else:
|
||||
continue
|
||||
return conf_stage
|
||||
|
||||
def fix_diff(
|
||||
task_stage: task.Stage, conf_stage: result.StageDetail, task_conf: task.Config
|
||||
) -> result.StageDetail:
|
||||
|
|
|
@ -4,10 +4,20 @@ release_tags = ["v1.0", "v2.0", "final"]
|
|||
sandbox_token = "test"
|
||||
|
||||
max_total_score = 100
|
||||
|
||||
# for projects
|
||||
#groups.name = ["build", "run"]
|
||||
#groups.max_count = [8, 5]
|
||||
#groups.time_period_hour = [24, 24]
|
||||
|
||||
|
||||
# for tests
|
||||
groups.name = ["joj", "run"]
|
||||
groups.max_count = [1000, 1000]
|
||||
groups.time_period_hour = [24, 24]
|
||||
|
||||
[files]
|
||||
required = ["README.md" ]
|
||||
# projects
|
||||
# required = ["README.md", "Changelog.md"]
|
||||
required = ["README.md"]
|
||||
immutable = [".gitignore", ".gitattributes",".gitea/workflows/push.yaml", ".gitea/workflows/release.yaml" ]
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
teaching_team = ["prof_john", "ta_alice", "ta_bob"]
|
||||
max_size = 50.5
|
||||
release_tags = ["v1.0", "v2.0", "final"]
|
||||
sandbox_token = "test"
|
||||
|
||||
[files]
|
||||
whitelist_patterns = ["*.py", "*.txt", "*.md"]
|
||||
whitelist_file = ".whitelist"
|
||||
required = [ "Changelog.md", "Readme.md" ]
|
||||
immutable = [".gitignore", ".gitattributes", ".gitea/workflows/push.yaml", ".gitea/workflows/release.yaml" ]
|
|
@ -10,6 +10,7 @@
|
|||
"stages": [
|
||||
{
|
||||
"name": "healthcheck",
|
||||
"group": "",
|
||||
"executor": {
|
||||
"name": "sandbox",
|
||||
"with": {
|
||||
|
@ -19,7 +20,7 @@
|
|||
"-root=.",
|
||||
"-repoSize=50.5",
|
||||
"-meta=README.md",
|
||||
"-checkFileSumList=a5b63323a692d3d8b952442969649b4f823d58dae26429494f613df160710dfc,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,f6740081487ca34963a005209e2e9adfdf6f3561719af082d40fe80145e0cceb,ad7ba6fbee5d80e018e4190e31bd842553d540044f0faf13592d73cef93a061b",
|
||||
"-checkFileSumList=a7bda693bf603a20b0ecf1bcdae62c7268596313e7efffcbc8a6fe393e3397b6,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,0f786177a68c4553043d0c8f8235908730249cc84c5bbbbbe0dc05fad82ac5ca,50682ce666d694d2cf11aebb3a0d0c2e2d6649562dde38fbcedff006484bf994",
|
||||
"-checkFileNameList=.gitignore,.gitattributes,.gitea/workflows/push.yaml,.gitea/workflows/release.yaml"
|
||||
],
|
||||
"env": [
|
||||
|
@ -76,7 +77,8 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"name": "Compilation",
|
||||
"name": "[cq] Compilation",
|
||||
"group": "",
|
||||
"executor": {
|
||||
"name": "sandbox",
|
||||
"with": {
|
||||
|
@ -195,7 +197,13 @@
|
|||
"with": {
|
||||
"score": 0,
|
||||
"comment": "Congratulations! Your code compiled successfully.",
|
||||
"forceQuitOnNotAccepted": false
|
||||
"forceQuitOnNotAccepted": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "file",
|
||||
"with": {
|
||||
"name": "stdout"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -209,6 +217,19 @@
|
|||
"gradingRepoName": "engr151-joj",
|
||||
"skipIssue": false,
|
||||
"skipScoreboard": false,
|
||||
"skipFailedTable": false
|
||||
"skipFailedTable": false,
|
||||
"maxTotalScore": 100,
|
||||
"groups": [
|
||||
{
|
||||
"name": "joj",
|
||||
"maxCount": 1000,
|
||||
"timePeriodHour": 24
|
||||
},
|
||||
{
|
||||
"name": "run",
|
||||
"maxCount": 1000,
|
||||
"timePeriodHour": 24
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,15 +6,17 @@ release.deadline = 2024-12-30 23:59:59+08:00
|
|||
release.stages = [ "compile" ]
|
||||
|
||||
[[stages]]
|
||||
name = "Compilation"
|
||||
name = "[cq] Compilation"
|
||||
command = "./tools/compile" # eg. script running cmake commands
|
||||
files.import = [ "tools/compile", "h6/build/ex3-main.c", "h6/build/ex4-main.c", "h6/build/ex5-main.c", "h6/build/ex7-main.c" ]
|
||||
files.export = [ "h6/build/ex2", "h6/build/ex2-asan", "h6/build/ex2-ubsan", "h6/build/ex2-msan", "h6/build/ex3", "h6/build/ex3-asan", "h6/build/ex3-ubsan", "h6/build/ex3-msan", "h6/build/ex4", "h6/build/ex4-asan", "h6/build/ex4-ubsan", "h6/build/ex4-msan", "h6/build/ex5", "h6/build/ex5-asan", "h6/build/ex5-ubsan", "h6/build/ex5-msan", "h6/build/ex6", "h6/build/ex6-asan", "h6/build/ex6-ubsan", "h6/build/ex6-msan", "h6/build/ex7", "h6/build/ex7-asan", "h6/build/ex7-ubsan", "h6/build/ex7-msan", "h6/build/ex3-main.c", "h6/build/ex4-main.c", "h6/build/ex5-main.c", "h6/build/ex7-main.c", "h6/build/compile_commands.json" ]
|
||||
|
||||
# compile parsers ex
|
||||
parsers = [ "result-detail", "result-status" ]
|
||||
parsers = [ "result-detail", "result-status", "file" ]
|
||||
result-status.comment = "Congratulations! Your code compiled successfully."
|
||||
result-detail.exitstatus = true
|
||||
result-detail.stderr = true
|
||||
result-detail.time = false
|
||||
result-detail.mem = false
|
||||
result-status.forcequit = true
|
||||
file.name = "stdout"
|
||||
|
|
|
@ -1,137 +0,0 @@
|
|||
# p2 repo config
|
||||
|
||||
task="p2 m3" # task name
|
||||
|
||||
release.deadline = 2024-10-12 23:59:00+08:00
|
||||
release.stages = [ "compile" ]
|
||||
|
||||
[files]
|
||||
immutable = [".gitignore", ".gitattributes", ".gitea/workflows/push.yaml", ".gitea/workflows/release.yaml" ]
|
||||
required = [ "Changelog.md", "Readme.md" ]
|
||||
|
||||
[[stages]]
|
||||
name = "Abuse of strings detected"
|
||||
command = "./strdetect src/"
|
||||
files.import = [ "tools/strdetec" ]
|
||||
|
||||
parsers = [ "result-status" ]
|
||||
|
||||
|
||||
[[stages]]
|
||||
name = "Compilation"
|
||||
command = "compile"
|
||||
files.import = [ "tools/compile" ]
|
||||
files.export = [ "build/onecard", "build/asan", "build/ubsan", "build/msan", "build/compile_commands.json" ]
|
||||
|
||||
parsers = [ "result-detail", "dummy", "result-status" ]
|
||||
result-status.comment = "Congratulations! Your code compiled successfully."
|
||||
result-status.score = 1
|
||||
dummy.comment = "\n\n### Details\n"
|
||||
result-detail.exitstatus = true
|
||||
result-detail.stderr = true
|
||||
result-detail.time = false
|
||||
result-detail.mem = false
|
||||
|
||||
[[stages]]
|
||||
name = "[cq] Filelength"
|
||||
command = "./file-length 400 300 *.c *.h"
|
||||
files.import = [ "tools/filelength" ]
|
||||
|
||||
parsers = [ "keyword", "dummy", "result-detail" ]
|
||||
keyword.keyword = [ "max", "recommended"]
|
||||
keyword.weight = [ 20, 10 ]
|
||||
dummy.comment = "\n\n### Details\n"
|
||||
result-detail.exitstatus = true
|
||||
result-detail.stdout = true
|
||||
result-detail.time = false
|
||||
result-detail.mem = false
|
||||
|
||||
[[stages]]
|
||||
name = "[cq] Clang-tidy"
|
||||
command = "run-clang-tidy-18 -header-filter=.* -quiet -load=/usr/local/lib/libcodequality.so -p build"
|
||||
files.import = [ "projects/p2/.clang-tidy", "build/compile_commands.json" ]
|
||||
limit.stdout = 65
|
||||
|
||||
parsers = [ "clangtidy", "dummy", "result-detail" ]
|
||||
clangtidy.keyword = [ "codequality-unchecked-malloc-result", "codequality-no-global-variables", "codequality-no-header-guard", "codequality-no-fflush-stdin", "readability-function-size", "readability-duplicate-include", "readability-identifier-naming", "readability-redundant", "readability-misleading-indentation", "readability-misplaced-array-index", "cppcoreguidelines-init-variables", "bugprone-suspicious-string-compare", "google-global-names-in-headers", "clang-diagnostic", "clang-analyzer", "misc", "performance", "portability" ]
|
||||
clangtidy.weight = [ 5, 20, 20, 20, 10, 5, 5, 5, 15, 5, 5, 5, 5, 5, 5, 5, 5, 5]
|
||||
dummy.comment = "\n\n### Details\n"
|
||||
result-detail.exitstatus = true
|
||||
result-detail.stdout = true
|
||||
result-detail.time = false
|
||||
result-detail.mem = false
|
||||
|
||||
[[stages]]
|
||||
name = "[cq] Cppcheck"
|
||||
command = "cppcheck --template='{\"file\":\"{file}\",\"line\":{line}, \"column\":{column}, \"severity\":\"{severity}\", \"message\":\"{message}\", \"id\":\"{id}\"}' --force --enable=all --suppress=missingIncludeSystem --quiet ./"
|
||||
limit.stderr = 65
|
||||
|
||||
parsers = [ "cppcheck", "dummy", "result-detail" ]
|
||||
cppcheck.keyword = ["error", "warning", "portability", "performance", "style"]
|
||||
cppcheck.weight = [15, 5, 5, 5, 5]
|
||||
dummy.comment = "\n\n### Details\n"
|
||||
result-detail.exitstatus = true
|
||||
result-detail.stderr = true
|
||||
result-detail.time = false
|
||||
result-detail.mem = false
|
||||
|
||||
[[stages]]
|
||||
name = "[cq] Cpplint"
|
||||
command = "cpplint --linelength=120 --filter=-legal,-readability/casting,-whitespace,-runtime/printf,-runtime/threadsafe_fn,-readability/todo,-build/include_subdir,-build/header_guard --recursive --exclude=build ."
|
||||
limit.stdout = 65
|
||||
|
||||
parsers = [ "cpplint", "dummy", "result-detail" ]
|
||||
cpplint.keyword = [ "runtime", "readability", "build" ]
|
||||
cpplint.weight = [ 5, 20, 10]
|
||||
dummy.comment = "\n\n### Details\n"
|
||||
result-detail.exitstatus = true
|
||||
result-detail.stderr = true
|
||||
result-detail.time = false
|
||||
result-detail.mem = false
|
||||
|
||||
[[stages]]
|
||||
name = "[run] onecard"
|
||||
group = "run"
|
||||
command="./onecard -a"
|
||||
files.import = [ "build/onecard" ]
|
||||
|
||||
parsers = [ "result-status", "result-detail" ]
|
||||
result-status.score = 1
|
||||
result-status.forcequit = false
|
||||
result-detail.exitstatus = true
|
||||
result-detail.stderr = true
|
||||
|
||||
[[stages]]
|
||||
name = "[run] address sanitizer"
|
||||
group = "run"
|
||||
command="./asan -a"
|
||||
files.import = [ "build/asan" ]
|
||||
|
||||
parsers = [ "result-status", "result-detail" ]
|
||||
result-status.score = 1
|
||||
result-status.forcequit = false
|
||||
result-detail.exitstatus = true
|
||||
result-detail.stderr = true
|
||||
|
||||
[[stages]]
|
||||
name = "[run] memory sanitizer"
|
||||
group = "run"
|
||||
command="./msan -a"
|
||||
files.import = [ "build/msan" ]
|
||||
|
||||
parsers = [ "result-status", "result-detail" ]
|
||||
result-status.score = 1
|
||||
result-status.forcequit = false
|
||||
result-detail.exitstatus = true
|
||||
result-detail.stderr = true
|
||||
|
||||
[[stages]]
|
||||
name = "[run] undefined behavior sanitizer"
|
||||
command="./ubsan -a"
|
||||
files.import = [ "build/ubsan" ]
|
||||
|
||||
parsers = [ "result-status", "result-detail" ]
|
||||
result-status.score = 1
|
||||
result-status.forcequit = false
|
||||
result-detail.exitstatus = true
|
||||
result-detail.stderr = true
|
33
tests/immutable_hteam-test/.gitattributes
vendored
Normal file
33
tests/immutable_hteam-test/.gitattributes
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
*.avi filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.djvu filter=lfs diff=lfs merge=lfs -text
|
||||
*.doc filter=lfs diff=lfs merge=lfs -text
|
||||
*.docx filter=lfs diff=lfs merge=lfs -text
|
||||
*.epub filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ipynb filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
||||
*.JPEG filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
*.JPG filter=lfs diff=lfs merge=lfs -text
|
||||
*.mkv filter=lfs diff=lfs merge=lfs -text
|
||||
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
||||
*.ods filter=lfs diff=lfs merge=lfs -text
|
||||
*.odt filter=lfs diff=lfs merge=lfs -text
|
||||
*.otf filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.PDF filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.PNG filter=lfs diff=lfs merge=lfs -text
|
||||
*.ppt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pptx filter=lfs diff=lfs merge=lfs -text
|
||||
*.ps filter=lfs diff=lfs merge=lfs -text
|
||||
*.rar filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.webm filter=lfs diff=lfs merge=lfs -text
|
||||
*.xls filter=lfs diff=lfs merge=lfs -text
|
||||
*.xlsx filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
23
tests/immutable_hteam-test/.gitignore
vendored
Normal file
23
tests/immutable_hteam-test/.gitignore
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
################################
|
||||
## White list based gitignore ##
|
||||
################################
|
||||
|
||||
# forbidden
|
||||
*
|
||||
.*
|
||||
|
||||
# allowed
|
||||
!.gitignore
|
||||
!.gitattributes
|
||||
!.gitea/
|
||||
!.gitea/issue_template/
|
||||
!.gitea/workflows/
|
||||
!*.yaml
|
||||
!Makefile
|
||||
!CMakeLists.txt
|
||||
!h[0-8]/
|
||||
!*.m
|
||||
!*.c
|
||||
!*.cpp
|
||||
!*.h
|
||||
!*.md
|
19
tests/immutable_hteam-test/push.yaml
Normal file
19
tests/immutable_hteam-test/push.yaml
Normal file
|
@ -0,0 +1,19 @@
|
|||
name: Run JOJ3 on Push
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
run:
|
||||
container:
|
||||
image: focs.ji.sjtu.edu.cn:5000/gitea/runner-images:focs-ubuntu-latest-slim
|
||||
volumes:
|
||||
- /home/tt/.config:/home/tt/.config
|
||||
- /home/tt/.cache:/home/tt/.cache
|
||||
- /home/tt/.ssh:/home/tt/.ssh
|
||||
steps:
|
||||
- name: Check out repository code
|
||||
uses: https://gitea.com/BoYanZh/checkout@focs
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: run joj3
|
||||
run: |
|
||||
sudo -E -u tt joj3 -conf-root /home/tt/.config/joj/tests/homework
|
21
tests/immutable_hteam-test/release.yaml
Normal file
21
tests/immutable_hteam-test/release.yaml
Normal file
|
@ -0,0 +1,21 @@
|
|||
name: Run JOJ3 on Release
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
run:
|
||||
container:
|
||||
image: focs.ji.sjtu.edu.cn:5000/gitea/runner-images:focs-ubuntu-latest-slim
|
||||
volumes:
|
||||
- /home/tt/.config:/home/tt/.config
|
||||
- /home/tt/.cache:/home/tt/.cache
|
||||
- /home/tt/.ssh:/home/tt/.ssh
|
||||
steps:
|
||||
- name: Check out repository code
|
||||
uses: https://gitea.com/BoYanZh/checkout@focs
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: run joj3
|
||||
run: |
|
||||
sudo -E -u tt joj3 -conf-root "/home/tt/.config/joj/tests/homework" -conf-name "conf-release.json" -tag "${{ github.ref_name }}"
|
33
tests/immutable_hteam/.gitattributes
vendored
Normal file
33
tests/immutable_hteam/.gitattributes
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
*.avi filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.djvu filter=lfs diff=lfs merge=lfs -text
|
||||
*.doc filter=lfs diff=lfs merge=lfs -text
|
||||
*.docx filter=lfs diff=lfs merge=lfs -text
|
||||
*.epub filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ipynb filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
||||
*.JPEG filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
*.JPG filter=lfs diff=lfs merge=lfs -text
|
||||
*.mkv filter=lfs diff=lfs merge=lfs -text
|
||||
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
||||
*.ods filter=lfs diff=lfs merge=lfs -text
|
||||
*.odt filter=lfs diff=lfs merge=lfs -text
|
||||
*.otf filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.PDF filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.PNG filter=lfs diff=lfs merge=lfs -text
|
||||
*.ppt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pptx filter=lfs diff=lfs merge=lfs -text
|
||||
*.ps filter=lfs diff=lfs merge=lfs -text
|
||||
*.rar filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.webm filter=lfs diff=lfs merge=lfs -text
|
||||
*.xls filter=lfs diff=lfs merge=lfs -text
|
||||
*.xlsx filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
23
tests/immutable_hteam/.gitignore
vendored
Normal file
23
tests/immutable_hteam/.gitignore
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
################################
|
||||
## White list based gitignore ##
|
||||
################################
|
||||
|
||||
# forbidden
|
||||
*
|
||||
.*
|
||||
|
||||
# allowed
|
||||
!.gitignore
|
||||
!.gitattributes
|
||||
!.gitea/
|
||||
!.gitea/issue_template/
|
||||
!.gitea/workflows/
|
||||
!*.yaml
|
||||
!Makefile
|
||||
!CMakeLists.txt
|
||||
!h[0-8]/
|
||||
!*.m
|
||||
!*.c
|
||||
!*.cpp
|
||||
!*.h
|
||||
!*.md
|
19
tests/immutable_hteam/push.yaml
Normal file
19
tests/immutable_hteam/push.yaml
Normal file
|
@ -0,0 +1,19 @@
|
|||
name: Run JOJ3 on Push
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
run:
|
||||
container:
|
||||
image: focs.ji.sjtu.edu.cn:5000/gitea/runner-images:focs-ubuntu-latest-slim
|
||||
volumes:
|
||||
- /home/tt/.config:/home/tt/.config
|
||||
- /home/tt/.cache:/home/tt/.cache
|
||||
- /home/tt/.ssh:/home/tt/.ssh
|
||||
steps:
|
||||
- name: Check out repository code
|
||||
uses: https://gitea.com/BoYanZh/checkout@focs
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: run joj3
|
||||
run: |
|
||||
sudo -E -u tt joj3 -conf-root /home/tt/.config/joj/homework
|
21
tests/immutable_hteam/release.yaml
Normal file
21
tests/immutable_hteam/release.yaml
Normal file
|
@ -0,0 +1,21 @@
|
|||
name: Run JOJ3 on Release
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
run:
|
||||
container:
|
||||
image: focs.ji.sjtu.edu.cn:5000/gitea/runner-images:focs-ubuntu-latest-slim
|
||||
volumes:
|
||||
- /home/tt/.config:/home/tt/.config
|
||||
- /home/tt/.cache:/home/tt/.cache
|
||||
- /home/tt/.ssh:/home/tt/.ssh
|
||||
steps:
|
||||
- name: Check out repository code
|
||||
uses: https://gitea.com/BoYanZh/checkout@focs
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: run joj3
|
||||
run: |
|
||||
sudo -E -u tt joj3 -conf-root "/home/tt/.config/joj/homework" -conf-name "conf-release.json" -tag "${{ github.ref_name }}"
|
33
tests/immutable_p3-test/.gitattributes
vendored
Normal file
33
tests/immutable_p3-test/.gitattributes
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
*.avi filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.djvu filter=lfs diff=lfs merge=lfs -text
|
||||
*.doc filter=lfs diff=lfs merge=lfs -text
|
||||
*.docx filter=lfs diff=lfs merge=lfs -text
|
||||
*.epub filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ipynb filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
||||
*.JPEG filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
*.JPG filter=lfs diff=lfs merge=lfs -text
|
||||
*.mkv filter=lfs diff=lfs merge=lfs -text
|
||||
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
||||
*.ods filter=lfs diff=lfs merge=lfs -text
|
||||
*.odt filter=lfs diff=lfs merge=lfs -text
|
||||
*.otf filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.PDF filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.PNG filter=lfs diff=lfs merge=lfs -text
|
||||
*.ppt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pptx filter=lfs diff=lfs merge=lfs -text
|
||||
*.ps filter=lfs diff=lfs merge=lfs -text
|
||||
*.rar filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.webm filter=lfs diff=lfs merge=lfs -text
|
||||
*.xls filter=lfs diff=lfs merge=lfs -text
|
||||
*.xlsx filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
29
tests/immutable_p3-test/.gitignore
vendored
Normal file
29
tests/immutable_p3-test/.gitignore
vendored
Normal file
|
@ -0,0 +1,29 @@
|
|||
################################
|
||||
## White list based gitignore ##
|
||||
################################
|
||||
|
||||
# forbidden
|
||||
*
|
||||
.*
|
||||
|
||||
# allowed
|
||||
!.gitignore
|
||||
!.gitattributes
|
||||
!.gitea/
|
||||
!.gitea/issue_template/
|
||||
!.gitea/workflows/
|
||||
!src/
|
||||
src/*
|
||||
!src/ipa
|
||||
!src/ipa/*.h
|
||||
!src/ipa/*.cpp
|
||||
!src/ipa/Makefile
|
||||
!src/pms
|
||||
!src/pms/*.cpp
|
||||
!src/pms/*.h
|
||||
!src/pms/Makefile
|
||||
|
||||
!CMakeLists.txt
|
||||
!Makefile
|
||||
!*.md
|
||||
!*.yaml
|
20
tests/immutable_p3-test/push.yaml
Normal file
20
tests/immutable_p3-test/push.yaml
Normal file
|
@ -0,0 +1,20 @@
|
|||
name: Run JOJ3 on Push
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
run:
|
||||
container:
|
||||
image: focs.ji.sjtu.edu.cn:5000/gitea/runner-images:focs-ubuntu-latest-slim
|
||||
volumes:
|
||||
- /home/tt/.config:/home/tt/.config
|
||||
- /home/tt/.cache:/home/tt/.cache
|
||||
- /home/tt/.ssh:/home/tt/.ssh
|
||||
steps:
|
||||
- name: Check out repository code
|
||||
uses: https://gitea.com/BoYanZh/checkout@focs
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: run joj3
|
||||
run: |
|
||||
sudo -E -u tt joj3 -conf-root /home/tt/.config/joj/tests/projects/p3
|
||||
|
22
tests/immutable_p3-test/release.yaml
Normal file
22
tests/immutable_p3-test/release.yaml
Normal file
|
@ -0,0 +1,22 @@
|
|||
name: Run JOJ3 on Release
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
run:
|
||||
container:
|
||||
image: focs.ji.sjtu.edu.cn:5000/gitea/runner-images:focs-ubuntu-latest-slim
|
||||
volumes:
|
||||
- /home/tt/.config:/home/tt/.config
|
||||
- /home/tt/.cache:/home/tt/.cache
|
||||
- /home/tt/.ssh:/home/tt/.ssh
|
||||
steps:
|
||||
- name: Check out repository code
|
||||
uses: https://gitea.com/BoYanZh/checkout@focs
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: run joj3
|
||||
run: |
|
||||
sudo -E -u tt joj3 -conf-root "/home/tt/.config/joj/tests/projects/p3" -conf-name "conf-release.json" -tag "${{ github.ref_name }}"
|
||||
|
33
tests/immutable_p3/.gitattributes
vendored
Normal file
33
tests/immutable_p3/.gitattributes
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
*.avi filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.djvu filter=lfs diff=lfs merge=lfs -text
|
||||
*.doc filter=lfs diff=lfs merge=lfs -text
|
||||
*.docx filter=lfs diff=lfs merge=lfs -text
|
||||
*.epub filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ipynb filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
||||
*.JPEG filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
*.JPG filter=lfs diff=lfs merge=lfs -text
|
||||
*.mkv filter=lfs diff=lfs merge=lfs -text
|
||||
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
||||
*.ods filter=lfs diff=lfs merge=lfs -text
|
||||
*.odt filter=lfs diff=lfs merge=lfs -text
|
||||
*.otf filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.PDF filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.PNG filter=lfs diff=lfs merge=lfs -text
|
||||
*.ppt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pptx filter=lfs diff=lfs merge=lfs -text
|
||||
*.ps filter=lfs diff=lfs merge=lfs -text
|
||||
*.rar filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.webm filter=lfs diff=lfs merge=lfs -text
|
||||
*.xls filter=lfs diff=lfs merge=lfs -text
|
||||
*.xlsx filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
29
tests/immutable_p3/.gitignore
vendored
Normal file
29
tests/immutable_p3/.gitignore
vendored
Normal file
|
@ -0,0 +1,29 @@
|
|||
################################
|
||||
## White list based gitignore ##
|
||||
################################
|
||||
|
||||
# forbidden
|
||||
*
|
||||
.*
|
||||
|
||||
# allowed
|
||||
!.gitignore
|
||||
!.gitattributes
|
||||
!.gitea/
|
||||
!.gitea/issue_template/
|
||||
!.gitea/workflows/
|
||||
!src/
|
||||
src/*
|
||||
!src/ipa
|
||||
!src/ipa/*.h
|
||||
!src/ipa/*.cpp
|
||||
!src/ipa/Makefile
|
||||
!src/pms
|
||||
!src/pms/*.cpp
|
||||
!src/pms/*.h
|
||||
!src/pms/Makefile
|
||||
|
||||
!CMakeLists.txt
|
||||
!Makefile
|
||||
!*.md
|
||||
!*.yaml
|
20
tests/immutable_p3/push.yaml
Normal file
20
tests/immutable_p3/push.yaml
Normal file
|
@ -0,0 +1,20 @@
|
|||
name: Run JOJ3 on Push
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
run:
|
||||
container:
|
||||
image: focs.ji.sjtu.edu.cn:5000/gitea/runner-images:focs-ubuntu-latest-slim
|
||||
volumes:
|
||||
- /home/tt/.config:/home/tt/.config
|
||||
- /home/tt/.cache:/home/tt/.cache
|
||||
- /home/tt/.ssh:/home/tt/.ssh
|
||||
steps:
|
||||
- name: Check out repository code
|
||||
uses: https://gitea.com/BoYanZh/checkout@focs
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: run joj3
|
||||
run: |
|
||||
sudo -E -u tt joj3 -conf-root /home/tt/.config/joj/projects/p3
|
||||
|
22
tests/immutable_p3/release.yaml
Normal file
22
tests/immutable_p3/release.yaml
Normal file
|
@ -0,0 +1,22 @@
|
|||
name: Run JOJ3 on Release
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
run:
|
||||
container:
|
||||
image: focs.ji.sjtu.edu.cn:5000/gitea/runner-images:focs-ubuntu-latest-slim
|
||||
volumes:
|
||||
- /home/tt/.config:/home/tt/.config
|
||||
- /home/tt/.cache:/home/tt/.cache
|
||||
- /home/tt/.ssh:/home/tt/.ssh
|
||||
steps:
|
||||
- name: Check out repository code
|
||||
uses: https://gitea.com/BoYanZh/checkout@focs
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: run joj3
|
||||
run: |
|
||||
sudo -E -u tt joj3 -conf-root "/home/tt/.config/joj/projects/p3" -conf-name "conf-release.json" -tag "${{ github.ref_name }}"
|
||||
|
Loading…
Reference in New Issue
Block a user
why?
forgot to uncommented 😭
fixed