From 2e947b5a31d7bd6c17aff8dba3917fabf6640b91 Mon Sep 17 00:00:00 2001 From: Denozordec Date: Wed, 23 Sep 2026 16:57:38 +0700 Subject: [PATCH] =?UTF-8?q?fix(ci):=20=D0=BC=D1=83=D0=BB=D1=8C=D1=82=D0=B8?= =?UTF-8?q?-=D0=BA=D0=BE=D0=BC=D0=BC=D0=B8=D1=82=20=D0=BF=D1=83=D1=88=20?= =?UTF-8?q?=D0=BB=D0=BE=D0=BC=D0=B0=D0=BB=20=D0=B4=D0=B5=D1=82=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=20=D0=BF=D1=83=D1=82=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit checkout для push-событий был fetch-depth: 2, но github.event.before при пуше пачки коммитов лежит глубже HEAD~1 — git diff падал с 'bad object'. Теперь fetch-depth: 0 + fallback на полный пайплайн, если before-SHA недоступен (переписанная история). --- .gitea/workflows/quality.yaml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/quality.yaml b/.gitea/workflows/quality.yaml index bce4251..a70150f 100644 --- a/.gitea/workflows/quality.yaml +++ b/.gitea/workflows/quality.yaml @@ -46,7 +46,8 @@ jobs: - if: ${{ inputs.is_pull_request == false }} uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: - fetch-depth: 2 + # github.event.before может быть глубже HEAD~1 при мульти-коммит пуше + fetch-depth: 0 - id: detect name: Detect changed paths per module env: @@ -79,7 +80,14 @@ jobs: after="${HEAD_SHA:-$(git rev-parse HEAD)}" before="$BEFORE_SHA" if [ -n "$before" ] && [ "$before" != "0000000000000000000000000000000000000000" ]; then - FILES="$(git diff --name-only "$before" "$after")" + # before может отсутствовать в локальном клоне (история переписана) — + # это не повод ронять пайплайн, прогоняем всё. + if ! FILES="$(git diff --name-only "$before" "$after" 2>/dev/null)"; then + set_all_flags_true + write_outputs + echo "before sha $before not available — full pipeline fallback" + exit 0 + fi elif git rev-parse --verify HEAD~1 >/dev/null 2>&1; then FILES="$(git diff --name-only HEAD~1 HEAD)" else