fix(config): поле uploads_ci вместо ci — раннеры CI выставляют CI=true
CI / ruff · mypy · pytest (pull_request) Successful in 1m38s

У Settings нет префикса env, поэтому переменная CI=true с раннера Gitea
попадала в поле ci и роняла создание настроек во всех тестах.

Refs #11

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-19 00:37:04 +03:00
co-authored by Claude Opus 5.5
parent 95a72437ec
commit 0c8f1f790b
3 changed files with 16 additions and 7 deletions
+2 -1
View File
@@ -148,7 +148,8 @@ class Settings(BaseSettings):
llm: LLMSettings = Field(default_factory=LLMSettings)
sourcecraft: SourceCraftSettings = Field(default_factory=SourceCraftSettings)
git: GitSettings = Field(default_factory=GitSettings)
ci: CISettings = Field(default_factory=CISettings)
# not `ci`: Settings has no env prefix, and CI runners export CI=true
uploads_ci: CISettings = Field(default_factory=CISettings)
docker: DockerSettings = Field(default_factory=DockerSettings)
runner: RunnerSettings = Field(default_factory=RunnerSettings)
runtime: RuntimeSettings = Field(default_factory=RuntimeSettings)
+5 -5
View File
@@ -100,7 +100,7 @@ async def run(settings: Settings) -> None:
)
repo = UploadsRepo(settings.git)
runner = RunnerClient(settings.runner) if settings.runner.host else None
ci = make_ci(settings.ci)
ci = make_ci(settings.uploads_ci)
deployer = Deployer(repo, runner, alerts) if runner else None
# Without CI and runner there is nothing to watch: the push message just says what was pushed
pipeline = (
@@ -111,9 +111,9 @@ async def run(settings: Settings) -> None:
ci,
deployer,
commit_url_template=settings.git.commit_url_template,
poll_interval=settings.ci.poll_interval,
max_poll_interval=settings.ci.max_poll_interval,
run_timeout=timedelta(minutes=settings.ci.run_timeout_minutes),
poll_interval=settings.uploads_ci.poll_interval,
max_poll_interval=settings.uploads_ci.max_poll_interval,
run_timeout=timedelta(minutes=settings.uploads_ci.run_timeout_minutes),
)
if ci or deployer
else None
@@ -150,7 +150,7 @@ async def run(settings: Settings) -> None:
"via proxy" if proxy else "direct",
"on" if docker else "off",
settings.llm.provider if agent else "off",
settings.ci.provider if ci else "off",
settings.uploads_ci.provider if ci else "off",
settings.runner.host or "off",
)
try: