mirror of
https://github.com/n8n-io/n8n.git
synced 2024-11-14 08:34:07 -08:00
91 lines
2.9 KiB
YAML
91 lines
2.9 KiB
YAML
name: Chromatic
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
pull_request_review:
|
|
types: [submitted]
|
|
|
|
concurrency:
|
|
group: chromatic-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
get-metadata:
|
|
name: Get Metadata
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out current commit
|
|
uses: actions/checkout@v4
|
|
with:
|
|
ref: ${{ github.event.pull_request.head.sha }}
|
|
fetch-depth: 2
|
|
|
|
- name: Determine changed files
|
|
uses: tomi/paths-filter-action@v3.0.2
|
|
id: changed
|
|
if: github.event_name == 'pull_request_review'
|
|
with:
|
|
filters: |
|
|
design_system:
|
|
- packages/design-system/**
|
|
- .github/workflows/chromatic.yml
|
|
|
|
outputs:
|
|
design_system_files_changed: ${{ steps.changed.outputs.design_system == 'true' }}
|
|
is_community_pr: ${{ contains(github.event.pull_request.labels.*.name, 'community') }}
|
|
is_pr_target_master: ${{ github.event.pull_request.base.ref == 'master' }}
|
|
is_dispatch: ${{ github.event_name == 'workflow_dispatch' }}
|
|
is_pr_approved: ${{ github.event.review.state == 'approved' }}
|
|
|
|
chromatic:
|
|
needs: [get-metadata]
|
|
if: |
|
|
needs.get-metadata.outputs.is_dispatch == 'true' ||
|
|
(
|
|
needs.get-metadata.outputs.design_system_files_changed == 'true' &&
|
|
needs.get-metadata.outputs.is_community_pr == 'false' &&
|
|
needs.get-metadata.outputs.is_pr_target_master == 'true' &&
|
|
needs.get-metadata.outputs.is_pr_approved == 'true'
|
|
)
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4.1.1
|
|
with:
|
|
fetch-depth: 0
|
|
- run: corepack enable
|
|
- uses: actions/setup-node@v4.0.2
|
|
with:
|
|
node-version: 20.x
|
|
cache: 'pnpm'
|
|
- run: pnpm install --frozen-lockfile
|
|
|
|
- name: Publish to Chromatic
|
|
uses: chromaui/action@v11
|
|
id: chromatic_tests
|
|
continue-on-error: true
|
|
with:
|
|
workingDir: packages/design-system
|
|
onlyChanged: true
|
|
projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
|
|
exitZeroOnChanges: false
|
|
|
|
- name: Success comment
|
|
if: steps.chromatic_tests.outcome == 'success'
|
|
uses: peter-evans/create-or-update-comment@v4.0.0
|
|
with:
|
|
issue-number: ${{ github.event.pull_request.number }}
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
edit-mode: replace
|
|
body: |
|
|
:white_check_mark: No visual regressions found.
|
|
|
|
- name: Fail comment
|
|
if: steps.chromatic_tests.outcome != 'success'
|
|
uses: peter-evans/create-or-update-comment@v4.0.0
|
|
with:
|
|
issue-number: ${{ github.event.pull_request.number }}
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
edit-mode: replace
|
|
body: |
|
|
[:warning: Visual regressions found](${{steps.chromatic_tests.outputs.url}}): ${{steps.chromatic_tests.outputs.changeCount}}
|