# .github/workflows/chromatic.yml

# Workflow name
name: 'Chromatic'

# Event for the workflow
on:
  push:
    paths:
      - 'package.json'
      - 'package-lock.json'
      - '.github/workflows/chromatic.yml'
      - '.storybook/**'
      - '!packages/uui/**'
      - 'packages/*/package.json'
      - 'packages/*/lib/**'
      - 'packages/*/assets/**'
    branches-ignore:
      - 'dependabot/**'
      - 'release/*'
      - 'Release/*'
      - 'main'
      - 'v*/main'
      - 'v*/release'

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:
    inputs:
      sha:
        description: The commit hash referring to the commit to check.
        required: true
      ref:
        description: The head branch associated with the pull request.
        required: true

env:
  NODE_OPTIONS: --max_old_space_size=16384

# List of jobs
jobs:
  chromatic-deployment:
    if: github.repository_owner == 'Umbraco'
    # Operating System
    runs-on: ubuntu-latest
    # Job steps
    steps:
      - uses: actions/checkout@v4
        with:
          # pulls all commits (needed for chromatic to find baselines)
          fetch-depth: '0'
      - name: Use Node.js 20
        uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: 'npm'
      - name: Install dependencies
        run: npm install
      - name: Publish to Chromatic
        uses: chromaui/action@v11
        continue-on-error: true
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
          buildScriptName: 'storybook:build'
          exitOnceUploaded: true
          onlyChanged: true,
          untraced: '.storybook/images/**/*,storyhelpers/**/*'
