diff --git a/.gitignore b/.gitignore index d8ce631..df9fa1a 100644 --- a/.gitignore +++ b/.gitignore @@ -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-* diff --git a/.mappa/config.yaml b/.mappa/config.yaml new file mode 100644 index 0000000..0ff432a --- /dev/null +++ b/.mappa/config.yaml @@ -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 diff --git a/host-stacks/local/sched-pipelines/schedd.Dockerfile b/host-stacks/local/sched-pipelines/schedd.Dockerfile index 305d27b..c32e5ec 100644 --- a/host-stacks/local/sched-pipelines/schedd.Dockerfile +++ b/host-stacks/local/sched-pipelines/schedd.Dockerfile @@ -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"] diff --git a/host-stacks/local/sched-pipelines/tasks.json b/host-stacks/local/sched-pipelines/tasks.json index 2aba082..22950b2 100644 --- a/host-stacks/local/sched-pipelines/tasks.json +++ b/host-stacks/local/sched-pipelines/tasks.json @@ -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", @@ -55,4 +97,4 @@ "timeoutMs": 10000 } } -} +} \ No newline at end of file