mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
ci: полная история без блобов там, где содержимое старых файлов не нужно
Полный клон — 215 МБ .git, blobless — 26 МБ, история коммитов и теги в обоих полные (замер в #345). Две job Validate качают историю целиком: preflight и changes. Первой нужны сообщения коммитов, трейлеры и имена изменённых файлов, второй — только `git diff --name-only`. Содержимое старых ревизий не читает ни одна из них ни на одном шаге. Коммиты и деревья по-прежнему скачиваются полностью, поэтому диапазоны и merge-base работают как раньше. Единственная догрузка блоба по требованию — `git show origin/main:.github/workflows/process.yml` в шаге сверки, один файл. Браузерным job фильтр не нужен: у них глубина по умолчанию, истории они не касаются вовсе. Тест закрепляет и обратную сторону: --depth=1 сюда подставлять нельзя, он того же размера, но без merge-base, а на нём стоят процессный гейт, smoke-select и каждый диапазон origin/dev..HEAD. Два мутанта проверены руками — снятый фильтр и подмена на depth=1, — каждый убит. Issue: #345 User-Visible: no
This commit is contained in:
@@ -33,8 +33,16 @@ jobs:
|
||||
name: "Предполётные проверки: документация, провенанс, процесс"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# `blob:none` при полной истории (#345): этой job нужны сообщения
|
||||
# коммитов, трейлеры и ИМЕНА изменённых файлов, а не содержимое старых
|
||||
# ревизий. Полный клон стоит 215 МБ против 26 МБ, и 32% этого веса —
|
||||
# скриншоты документации, переснятые 196 раз.
|
||||
#
|
||||
# Коммиты и деревья скачиваются целиком, поэтому диапазоны и `merge-base`
|
||||
# работают как раньше. Единственная догрузка по требованию здесь —
|
||||
# `git show origin/main:.github/workflows/process.yml`: один блоб.
|
||||
- uses: actions/checkout@v7
|
||||
with: { fetch-depth: 0 }
|
||||
with: { fetch-depth: 0, filter: 'blob:none' }
|
||||
- uses: actions/setup-node@v7
|
||||
with: { node-version: 22 }
|
||||
|
||||
@@ -137,8 +145,10 @@ jobs:
|
||||
backend: ${{ steps.classify.outputs.backend }}
|
||||
integration: ${{ steps.classify.outputs.integration }}
|
||||
steps:
|
||||
# `git diff --name-only` содержимого файлов не читает вовсе, поэтому
|
||||
# блобы истории этой job не нужны ни на одном шаге (#345).
|
||||
- uses: actions/checkout@v7
|
||||
with: { fetch-depth: 0 }
|
||||
with: { fetch-depth: 0, filter: 'blob:none' }
|
||||
- id: classify
|
||||
env:
|
||||
EVENT_NAME: ${{ github.event_name }}
|
||||
|
||||
Reference in New Issue
Block a user