Merge remote-tracking branch 'refs/remotes/origin/dev' into dev
This commit is contained in:
commit
b7b7a93677
|
@ -4,18 +4,10 @@ from typing import Set
|
||||||
from joj3_config_generator.models import joj1, repo, result, task
|
from joj3_config_generator.models import joj1, repo, result, task
|
||||||
from joj3_config_generator.models.const import CACHE_ROOT, JOJ3_CONFIG_ROOT
|
from joj3_config_generator.models.const import CACHE_ROOT, JOJ3_CONFIG_ROOT
|
||||||
from joj3_config_generator.processers.repo import (
|
from joj3_config_generator.processers.repo import (
|
||||||
get_health_check_config,
|
get_health_check_stage,
|
||||||
get_teapot_stage,
|
get_teapot_stage,
|
||||||
)
|
)
|
||||||
from joj3_config_generator.processers.task import (
|
from joj3_config_generator.processers.task import get_conf_stage
|
||||||
fix_diff,
|
|
||||||
fix_dummy,
|
|
||||||
fix_file,
|
|
||||||
fix_keyword,
|
|
||||||
fix_result_detail,
|
|
||||||
get_conf_stage,
|
|
||||||
get_executor_with_config,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def convert(repo_conf: repo.Config, task_conf: task.Config) -> result.Config:
|
def convert(repo_conf: repo.Config, task_conf: task.Config) -> result.Config:
|
||||||
|
@ -34,18 +26,11 @@ def convert(repo_conf: repo.Config, task_conf: task.Config) -> result.Config:
|
||||||
current_test = os.environ.get("PYTEST_CURRENT_TEST") is not None
|
current_test = os.environ.get("PYTEST_CURRENT_TEST") is not None
|
||||||
# Construct health check stage
|
# Construct health check stage
|
||||||
if not repo_conf.force_skip_health_check_on_test or not current_test:
|
if not repo_conf.force_skip_health_check_on_test or not current_test:
|
||||||
result_conf.stage.stages.append(get_health_check_config(repo_conf))
|
result_conf.stage.stages.append(get_health_check_stage(repo_conf))
|
||||||
cached: Set[str] = set()
|
cached: Set[str] = set()
|
||||||
# Convert each stage in the task configuration
|
# Convert each stage in the task configuration
|
||||||
for task_stage in task_conf.stages:
|
for task_stage in task_conf.stages:
|
||||||
executor_with_config = get_executor_with_config(task_stage, cached)
|
result_conf.stage.stages.append(get_conf_stage(task_conf, task_stage, cached))
|
||||||
conf_stage = get_conf_stage(task_stage, executor_with_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)
|
|
||||||
if not repo_conf.force_skip_teapot_on_test or not current_test:
|
if not repo_conf.force_skip_teapot_on_test or not current_test:
|
||||||
result_conf.stage.post_stages.append(get_teapot_stage(repo_conf))
|
result_conf.stage.post_stages.append(get_teapot_stage(repo_conf))
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,7 @@ def get_teapot_check_args(repo_conf: repo.Config) -> List[str]:
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
def get_health_check_config(repo_conf: repo.Config) -> result.StageDetail:
|
def get_health_check_stage(repo_conf: repo.Config) -> result.StageDetail:
|
||||||
health_check_stage = result.StageDetail(
|
health_check_stage = result.StageDetail(
|
||||||
name="Health Check",
|
name="Health Check",
|
||||||
group="",
|
group="",
|
||||||
|
|
|
@ -7,7 +7,9 @@ from joj3_config_generator.models.const import JOJ3_CONFIG_ROOT
|
||||||
|
|
||||||
|
|
||||||
def get_conf_stage(
|
def get_conf_stage(
|
||||||
task_stage: task.Stage, executor_with_config: result.ExecutorWith
|
task_conf: task.Config,
|
||||||
|
task_stage: task.Stage,
|
||||||
|
cached: Set[str],
|
||||||
) -> result.StageDetail:
|
) -> result.StageDetail:
|
||||||
conf_stage = result.StageDetail(
|
conf_stage = result.StageDetail(
|
||||||
name=task_stage.name,
|
name=task_stage.name,
|
||||||
|
@ -20,7 +22,7 @@ def get_conf_stage(
|
||||||
),
|
),
|
||||||
executor=result.Executor(
|
executor=result.Executor(
|
||||||
name="sandbox",
|
name="sandbox",
|
||||||
with_=executor_with_config,
|
with_=get_executor_with(task_stage, cached),
|
||||||
),
|
),
|
||||||
parsers=(
|
parsers=(
|
||||||
[
|
[
|
||||||
|
@ -29,12 +31,15 @@ def get_conf_stage(
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
fix_result_detail(task_stage, conf_stage)
|
||||||
|
fix_dummy(task_stage, conf_stage)
|
||||||
|
fix_keyword(task_stage, conf_stage)
|
||||||
|
fix_file(task_stage, conf_stage)
|
||||||
|
fix_diff(task_stage, task_conf, conf_stage)
|
||||||
return conf_stage
|
return conf_stage
|
||||||
|
|
||||||
|
|
||||||
def get_executor_with_config(
|
def get_executor_with(task_stage: task.Stage, cached: Set[str]) -> result.ExecutorWith:
|
||||||
task_stage: task.Stage, cached: Set[str]
|
|
||||||
) -> result.ExecutorWith:
|
|
||||||
file_import = task_stage.files.import_
|
file_import = task_stage.files.import_
|
||||||
copy_in_files = [file for file in file_import if file not in cached]
|
copy_in_files = [file for file in file_import if file not in cached]
|
||||||
file_export = task_stage.files.export
|
file_export = task_stage.files.export
|
||||||
|
@ -97,11 +102,9 @@ def fix_keyword(
|
||||||
return conf_stage
|
return conf_stage
|
||||||
|
|
||||||
|
|
||||||
def fix_result_detail(
|
def fix_result_detail(task_stage: task.Stage, conf_stage: result.StageDetail) -> None:
|
||||||
task_stage: task.Stage, conf_stage: result.StageDetail
|
|
||||||
) -> result.StageDetail:
|
|
||||||
if "result-detail" not in task_stage.parsers:
|
if "result-detail" not in task_stage.parsers:
|
||||||
return conf_stage
|
return
|
||||||
result_detail_parser = next(
|
result_detail_parser = next(
|
||||||
p for p in conf_stage.parsers if p.name == "result-detail"
|
p for p in conf_stage.parsers if p.name == "result-detail"
|
||||||
)
|
)
|
||||||
|
@ -121,12 +124,8 @@ def fix_result_detail(
|
||||||
).model_dump(by_alias=True)
|
).model_dump(by_alias=True)
|
||||||
)
|
)
|
||||||
|
|
||||||
return conf_stage
|
|
||||||
|
|
||||||
|
def fix_dummy(task_stage: task.Stage, conf_stage: result.StageDetail) -> None:
|
||||||
def fix_dummy(
|
|
||||||
task_stage: task.Stage, conf_stage: result.StageDetail
|
|
||||||
) -> result.StageDetail:
|
|
||||||
dummy_parser = [
|
dummy_parser = [
|
||||||
"dummy",
|
"dummy",
|
||||||
"result-status",
|
"result-status",
|
||||||
|
@ -146,28 +145,25 @@ def fix_dummy(
|
||||||
force_quit_on_not_accepted=task_stage.result_status.force_quit,
|
force_quit_on_not_accepted=task_stage.result_status.force_quit,
|
||||||
).model_dump(by_alias=True)
|
).model_dump(by_alias=True)
|
||||||
)
|
)
|
||||||
return conf_stage
|
return
|
||||||
|
|
||||||
|
|
||||||
def fix_file(
|
def fix_file(task_stage: task.Stage, conf_stage: result.StageDetail) -> None:
|
||||||
task_stage: task.Stage, conf_stage: result.StageDetail
|
|
||||||
) -> result.StageDetail:
|
|
||||||
file_parser = ["file"]
|
file_parser = ["file"]
|
||||||
for parser in task_stage.parsers:
|
for parser in task_stage.parsers:
|
||||||
if parser not in file_parser:
|
if parser not in file_parser:
|
||||||
continue
|
continue
|
||||||
file_parser_ = next(p for p in conf_stage.parsers if p.name == parser)
|
file_parser_ = next(p for p in conf_stage.parsers if p.name == parser)
|
||||||
file_parser_.with_.update({"name": task_stage.file.name})
|
file_parser_.with_.update({"name": task_stage.file.name})
|
||||||
return conf_stage
|
|
||||||
|
|
||||||
|
|
||||||
def fix_diff(
|
def fix_diff(
|
||||||
task_stage: task.Stage,
|
task_stage: task.Stage,
|
||||||
conf_stage: result.StageDetail,
|
|
||||||
task_conf: task.Config,
|
task_conf: task.Config,
|
||||||
) -> result.StageDetail:
|
conf_stage: result.StageDetail,
|
||||||
|
) -> None:
|
||||||
if "diff" not in task_stage.parsers:
|
if "diff" not in task_stage.parsers:
|
||||||
return conf_stage
|
return
|
||||||
diff_parser = next((p for p in conf_stage.parsers if p.name == "diff"), None)
|
diff_parser = next((p for p in conf_stage.parsers if p.name == "diff"), None)
|
||||||
skip = task_stage.skip
|
skip = task_stage.skip
|
||||||
cases = task_stage.cases
|
cases = task_stage.cases
|
||||||
|
@ -229,4 +225,4 @@ def fix_diff(
|
||||||
diff_parser.with_.update({"name": "diff", "cases": parser_cases})
|
diff_parser.with_.update({"name": "diff", "cases": parser_cases})
|
||||||
conf_stage.executor.with_.cases = stage_cases
|
conf_stage.executor.with_.cases = stage_cases
|
||||||
|
|
||||||
return conf_stage
|
return
|
||||||
|
|
Loading…
Reference in New Issue
Block a user