chore(.admin): чистка — мусор удалён; sched-pipelines: daemon 0.12.1 (cancel-on-poll-timeout) + tasks.json; .mappa-маркер

This commit is contained in:
2026-08-30 03:35:14 +03:00
parent 1b98232093
commit b1cf3a5785
4 changed files with 66 additions and 13 deletions

1
.gitignore vendored
View File

@@ -43,3 +43,4 @@ pilonuxt-home-smoke.jpeg
host-stacks/local/sched-pipelines/tasks.generated.json
host-stacks/local/sched-pipelines/data-ym/
host-stacks/local/sched-pipelines/data-ntfy/
.tmp-*

10
.mappa/config.yaml Normal file
View File

@@ -0,0 +1,10 @@
# mappa project marker — machine-readable identifier of a mappa project folder
# (спека brainstorm:151 р.5 · task:1538 · контракт: concepts/dot-mappa-marker)
# Только публичные данные реестра; секреты сюда не попадают.
schema_version: 1
protocol_version: 1
project: .admin
tenant: vitya
url: https://mappa.vds.kzntsv.site
git_provider: gitea
git: OpeItcLoc03/admin

View File

@@ -1,6 +1,6 @@
# schedd — опубликованный daemon из приватного реестра (verdaccio), как на проде.
# @sched/daemon@0.9.0 (latest) + deps (core 0.48.0) — cancel-форвардинг фикс:
# диспетчер форвардит cancel к per-task раннеру (task.runner), нет хука → no-op.
# @sched/daemon@0.12.1 (latest) + deps (core 0.53.0) — cancel-форвардинг + cancel-on-poll-timeout:
# при poll-timeout sched шлёт POST /cancel воркеру до записи failed (фикс расхождения вердикт↔реальность).
# node >= 24 (engines у daemon; node:sqlite).
FROM node:24-alpine
RUN apk add --no-cache git
@@ -8,7 +8,7 @@ WORKDIR /app
ENV NODE_ENV=production
ARG VERDACCIO_TOKEN
RUN npm config set //verdaccio.kzntsv.site/:_authToken=${VERDACCIO_TOKEN} \
&& npm install -g @sched/daemon@0.9.0 --registry=https://verdaccio.kzntsv.site --no-audit --no-fund
&& npm install -g @sched/daemon@0.12.1 --registry=https://verdaccio.kzntsv.site --no-audit --no-fund
EXPOSE 8080
VOLUME ["/data"]
ENTRYPOINT ["schedd"]

View File

@@ -7,9 +7,22 @@
"url": "http://ozon-seller-builder:8080/run?async=1",
"method": "POST",
"envelope": true,
"auth": { "apiKey": "__SCHED_API_KEY__" },
"auth": {
"apiKey": "__SCHED_API_KEY__"
},
"data": {
"stages": ["hash", "patch", "diff", "classify", "generate", "fix", "build", "postman", "state", "publish"],
"stages": [
"hash",
"patch",
"diff",
"classify",
"generate",
"fix",
"build",
"postman",
"state",
"publish"
],
"dryRun": false,
"readmeTemplate": "/app/data/package-readme.md"
}
@@ -20,13 +33,28 @@
"runner": "http",
"config": {
"handler": "pipeline",
"timeoutMs": 120000,
"url": "http://ym-client-builder:8080/run",
"method": "POST",
"envelope": true,
"auth": { "apiKey": "__SCHED_API_KEY__" },
"auth": {
"apiKey": "__SCHED_API_KEY__"
},
"data": {
"stages": ["fetch", "detect", "diff", "classify", "patch", "generate", "fix", "build", "test", "postmanGenerate", "postman", "publish", "githubDistro"],
"stages": [
"fetch",
"detect",
"diff",
"classify",
"patch",
"generate",
"fix",
"build",
"test",
"postmanGenerate",
"postman",
"publish",
"githubDistro"
],
"dryRun": false,
"repo": "https://github.com/yandex-market/yandex-market-partner-api",
"branch": "main",
@@ -39,15 +67,29 @@
"remoteBase": "__PUBLISH_REMOTE_BASE__",
"githubApiBase": "__PUBLISH_GH_API_BASE__",
"notify": {
"ntfy": { "url": "http://ntfy", "topic": "ym-client-builder" },
"email": { "to": "vitya.kuznetsov@gmail.com", "endpoint": "http://unisender-mock:8080/ru/transactional/api/v1/email/send.json", "on": ["published", "report", "failed"] }
"ntfy": {
"url": "http://ntfy",
"topic": "ym-client-builder"
},
"email": {
"to": "vitya.kuznetsov@gmail.com",
"endpoint": "http://unisender-mock:8080/ru/transactional/api/v1/email/send.json",
"on": [
"published",
"report",
"failed"
]
}
}
},
"timeoutMs": 900000
}
}
],
"alerts": {
"on": ["failed"],
"on": [
"failed"
],
"onMissed": true,
"webhook": {
"url": "http://alert-bridge:9090/webhook",