From f0763689b083715d1a6570fbbaedf0a87d4d70d0 Mon Sep 17 00:00:00 2001 From: fureev Date: Fri, 28 Aug 2026 01:40:40 +0300 Subject: [PATCH] =?UTF-8?q?fix(ci):=20=D0=BF=D1=80=D0=BE=D0=BF=D1=83=D1=81?= =?UTF-8?q?=D0=BA=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D0=B8=20=D0=BD=D0=B5=20=D0=B4=D0=BE=D0=BB=D0=B6=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=B4=D0=BE=D1=85=D0=BE=D0=B4=D0=B8=D1=82=D1=8C=20?= =?UTF-8?q?=D0=B4=D0=BE=20=D0=BF=D1=83=D0=B1=D0=BB=D0=B8=D0=BA=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D0=B8=20=D0=BF=D0=BE=20=D1=86=D0=B5=D0=BF=D0=BE=D1=87?= =?UTF-8?q?=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Первый заход починил только `build-granularity`, и этого не хватило: `skipped` идёт по цепочке дальше. `build-granularity` отработал успешно, а `build-granularity-devtools` всё равно пропустился — вместе с обеими publish-джобами. Гард `!failure() && !cancelled()` теперь стоит у всей цепочки технических пакетов: сборок devtools и unplugin и их публикаций. У publish-джоб он дополняет проверку тега, а не заменяет её, — публикация по-прежнему идёт только на своём теге. Упавшие тесты всё так же блокируют: `!failure()` отличает пропуск от падения. --- .github/workflows/ci.yml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3ba41296..190b7808 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1424,6 +1424,10 @@ jobs: # (без них типизированные правила ESLint видят `any` и падают лавиной), а из # `dist/web-types.json` генерируется карта обязательных пропов. build-granularity-devtools: + # Пропуск зависимости распространяется по цепочке: `test-granularity` + # выключается на теге технического пакета, и без этого условия сюда + # доходит `skipped` — через `build-granularity`, хотя тот отработал. + if: ${{ !failure() && !cancelled() }} needs: - build-granularity runs-on: ubuntu-latest @@ -1469,7 +1473,7 @@ jobs: publish-npm-granularity-devtools: needs: - build-granularity-devtools - if: startsWith(github.ref, 'refs/tags/granularity-devtools-v') + if: ${{ !failure() && !cancelled() && (startsWith(github.ref, 'refs/tags/granularity-devtools-v')) }} runs-on: ubuntu-latest permissions: contents: read @@ -1509,7 +1513,7 @@ jobs: publish-gpr-granularity-devtools: needs: - build-granularity-devtools - if: startsWith(github.ref, 'refs/tags/granularity-devtools-v') + if: ${{ !failure() && !cancelled() && (startsWith(github.ref, 'refs/tags/granularity-devtools-v')) }} runs-on: ubuntu-latest continue-on-error: true permissions: @@ -1547,6 +1551,10 @@ jobs: # unplugin-vue-components). Артефакт нужен и для валидации (publint), # и для последующей публикации по тегу `unplugin-granularity-v*`. build-unplugin-granularity: + # Пропуск зависимости распространяется по цепочке: `test-granularity` + # выключается на теге технического пакета, и без этого условия сюда + # доходит `skipped` — через `build-granularity`, хотя тот отработал. + if: ${{ !failure() && !cancelled() }} needs: - quality-granularity - build-granularity @@ -1592,7 +1600,7 @@ jobs: publish-npm-unplugin-granularity: needs: - build-unplugin-granularity - if: startsWith(github.ref, 'refs/tags/unplugin-granularity-v') + if: ${{ !failure() && !cancelled() && (startsWith(github.ref, 'refs/tags/unplugin-granularity-v')) }} runs-on: ubuntu-latest permissions: contents: read @@ -1633,7 +1641,7 @@ jobs: publish-gpr-unplugin-granularity: needs: - build-unplugin-granularity - if: startsWith(github.ref, 'refs/tags/unplugin-granularity-v') + if: ${{ !failure() && !cancelled() && (startsWith(github.ref, 'refs/tags/unplugin-granularity-v')) }} runs-on: ubuntu-latest continue-on-error: true permissions: