From 63a3cb01600d11952bc2d1605a4fe449154cc835 Mon Sep 17 00:00:00 2001 From: Vicki League Date: Thu, 10 Apr 2025 11:51:43 -0400 Subject: [PATCH] [CL-394] Only run Chromatic action on relevant PRs (#14065) --- .github/workflows/chromatic.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml index 75a07431942..f436f1b3760 100644 --- a/.github/workflows/chromatic.yml +++ b/.github/workflows/chromatic.yml @@ -28,9 +28,22 @@ jobs: with: ref: ${{ github.event.pull_request.head.sha }} fetch-depth: 0 + + - name: Get changed files + id: get-changed-files-for-chromatic + uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 + with: + filters: | + storyFiles: + - "apps/!(cli)/**" + - "bitwarden_license/bit-web/src/app/**" + - "libs/!(eslint)/**" + - "package.json" + - ".storybook/**" - name: Get Node version id: retrieve-node-version + if: steps.get-changed-files-for-chromatic.outputs.storyFiles == 'true' run: | NODE_NVMRC=$(cat .nvmrc) NODE_VERSION=${NODE_NVMRC/v/''} @@ -40,6 +53,7 @@ jobs: uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 with: node-version: ${{ steps.retrieve-node-version.outputs.node_version }} + if: steps.get-changed-files-for-chromatic.outputs.storyFiles == 'true' - name: Cache NPM id: npm-cache @@ -47,12 +61,15 @@ jobs: with: path: "~/.npm" key: ${{ runner.os }}-npm-chromatic-${{ hashFiles('**/package-lock.json') }} + if: steps.get-changed-files-for-chromatic.outputs.storyFiles == 'true' - name: Install Node dependencies + if: steps.get-changed-files-for-chromatic.outputs.storyFiles == 'true' run: npm ci # Manually build the Storybook to resolve a bug related to TurboSnap - name: Build Storybook + if: steps.get-changed-files-for-chromatic.outputs.storyFiles == 'true' run: npm run build-storybook:ci - name: Publish to Chromatic @@ -64,3 +81,5 @@ jobs: exitOnceUploaded: true onlyChanged: true externals: "[\"libs/components/**/*.scss\", \"libs/components/**/*.css\", \"libs/components/tailwind.config*.js\"]" + # Rather than use an `if` check on the whole publish step, we need to tell Chromatic to skip so that any Chromatic-spawned actions are properly skipped + skip: ${{ steps.get-changed-files-for-chromatic.outputs.storyFiles == 'false' }}