diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml new file mode 100644 index 000000000..0d1a84501 --- /dev/null +++ b/.github/workflows/chromatic.yml @@ -0,0 +1,54 @@ +name: 'Chromatic' + +on: + push: + branches: [main] + pull_request: + types: [opened, synchronize, reopened] +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + chromatic: + name: Run Chromatic + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.event.pull_request.head.ref }} + + env: + CHROMATIC_BRANCH: ${{ github.event.pull_request.head.ref || github.ref_name }} + CHROMATIC_SHA: ${{ github.event.pull_request.head.sha || github.ref }} + CHROMATIC_SLUG: ${{ github.repository }} + + - name: pnpm-setup-node + uses: ./.github/actions/pnpm-setup-node + + - name: Install dependencies + # ⚠️ See your package manager's documentation for the correct command to install dependencies in a CI environment. + run: pnpm install --frozen-lockfile + + - name: Run Chromatic + id: chromatic + uses: chromaui/action@latest + with: + # ⚠️ Make sure to configure a `CHROMATIC_PROJECT_TOKEN` repository secret + projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }} + token: ${{ secrets.GITHUB_TOKEN }} + onlyChanged: true + exitZeroOnChanges: false + + - name: comment PR + if: github.event_name == 'pull_request'&& steps.chromatic.outputs.storybookUrl != '' + uses: thollander/actions-comment-pull-request@v3 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + message: | + 🚀 Storybook is ready for review: ${{ steps.chromatic.outputs.storybookUrl }} + Build: ${{ steps.chromatic.outputs.buildUrl }} + comment-tag: chromatic