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).