From 0b14e64b58cd45e88023646ee2217194caf344ce Mon Sep 17 00:00:00 2001 From: bot-backend Date: Fri, 7 Aug 2026 14:48:58 +0500 Subject: [PATCH] =?UTF-8?q?fix(ci):=20=D1=83=D0=B1=D1=80=D0=B0=D1=82=D1=8C?= =?UTF-8?q?=20=D0=BB=D0=B8=D1=88=D0=BD=D0=B8=D0=B9=20fetch=20main=20?= =?UTF-8?q?=E2=80=94=20depth=3D0=20=D1=83=D0=B6=D0=B5=20=D1=82=D1=8F=D0=BD?= =?UTF-8?q?=D0=B5=D1=82=20refs/heads/*?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Отдельный шаг `git fetch origin main` в backend-тестовых job'ах ронял прогон: из job-контейнера git.gendsgn.ru:443 недостижим (run 6977, connection refused за 5 мс), сеть есть только у самого checkout. Шаг и не был нужен — в логе того же прогона видно, что при fetch-depth: 0 checkout идёт refspec'ом `+refs/heads/*:refs/remotes/origin/*`, то есть origin/main появляется сам. Refs #2683 --- .forgejo/workflows/ci-tradein.yml | 20 ++++++++++---------- .forgejo/workflows/deploy-tradein.yml | 6 ++---- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/.forgejo/workflows/ci-tradein.yml b/.forgejo/workflows/ci-tradein.yml index 79b7ca10..3e06eb97 100644 --- a/.forgejo/workflows/ci-tradein.yml +++ b/.forgejo/workflows/ci-tradein.yml @@ -88,19 +88,19 @@ jobs: with: # ПОЛНАЯ история, а не дефолтный depth=1 (#2683). # tests/test_migration_numbering.py сверяет номер новой миграции с - # origin/main и точкой ветвления — на shallow-клоне нет ни того, ни - # другого, и гейт красится «нет git-эталона». Это намеренно: молча + # origin/main и с точкой ветвления. Ровно этот флаг их и даёт: при + # depth=0 checkout идёт refspec'ом `+refs/heads/*:refs/remotes/origin/*` + # (видно в логе прогона), при depth=1 — только `+:refs/remotes/ + # pull/N/head`, то есть ни ветки main, ни общего предка в клоне нет. + # Дотянуть main отдельным `git fetch` НЕЛЬЗЯ: из job-контейнера + # git.gendsgn.ru:443 недостижим (проверено, run 6977 — connection + # refused), сеть есть только у самого checkout. + # + # Гейт при отсутствии эталона краснеет, а не пропускается: молча # пропущенная проверка и есть тот зелёный, который ничего не проверяет. - # Пак репозитория ~33 MiB, полный fetch дешевле разбора коллизии на проде. + # Пак репозитория ~33 MiB — полный fetch дешевле разбора коллизии на проде. fetch-depth: 0 - - name: Дотянуть origin/main (эталон номеров миграций) - # checkout выкачивает ТОЛЬКО ref события: на pull_request это - # refs/pull/N/head (merge-ref этот Forgejo не публикует — ls-remote видит - # 1620 */head и ноль */merge), так что ветки main в клоне нет вовсе. - # Без этого шага сверять номера не с чем. - run: git fetch --no-tags origin +refs/heads/main:refs/remotes/origin/main - - name: Поднять Postgres и собрать схему tradein working-directory: . # ПОЧЕМУ НЕ `services:` И ПОЧЕМУ БЕЗ ПУБЛИКАЦИИ ПОРТА. diff --git a/.forgejo/workflows/deploy-tradein.yml b/.forgejo/workflows/deploy-tradein.yml index b0567716..d19c3167 100644 --- a/.forgejo/workflows/deploy-tradein.yml +++ b/.forgejo/workflows/deploy-tradein.yml @@ -151,12 +151,10 @@ jobs: - uses: actions/checkout@v4 with: # Как в ci-tradein.yml: tests/test_migration_numbering.py (#2683) требует - # origin/main и общего предка с HEAD. На depth=1 их нет, и гейт красный. + # origin/main и общего предка с HEAD, а даёт их именно depth=0 — при + # depth=1 checkout тянет один sha и ветки main в клоне нет. fetch-depth: 0 - - name: Дотянуть origin/main (эталон номеров миграций) - run: git fetch --no-tags origin +refs/heads/main:refs/remotes/origin/main - - name: Install uv # Официальный standalone-инсталлер: системный `pip install uv` на # ubuntu-runner падает с PEP 668 externally-managed-environment (#666 CI).