fix(ci): убрать лишний fetch main — depth=0 уже тянет refs/heads/*
All checks were successful
CI Trade-In / changes (pull_request) Successful in 15s
CI / changes (pull_request) Successful in 13s
CI Trade-In / browser-tests (pull_request) Successful in 56s
CI Trade-In / frontend-checks (pull_request) Successful in 1m40s
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 2m32s
CI Trade-In / backend-tests (pull_request) Successful in 5m8s
CI / backend-tests (pull_request) Successful in 16m12s

Отдельный шаг `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
This commit is contained in:
bot-backend 2026-08-07 14:48:58 +05:00
parent 2e20b6307b
commit 0b14e64b58
2 changed files with 12 additions and 14 deletions

View file

@ -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 — только `+<sha>: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:` И ПОЧЕМУ БЕЗ ПУБЛИКАЦИИ ПОРТА.

View file

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