Open18

chromaui/actionは何をしているのか

nus3nus3

GitHub Actionsでchromaui/actionを使った時に何が実行されているのか調べる

      - name: Publish to Chromatic
        uses: chromaui/action
nus3nus3

該当のリポジトリ
https://github.com/chromaui/action

READMEに

⚠️ This repository is just a deployment target for the GitHub Action. Do not fork or create issues/PRs here.

と記載されており、ソースコードはこっち
https://github.com/chromaui/chromatic-cli

nus3nus3
nus3nus3

verifyBuildはGraphQLを使ってビルド情報をChromaticから取得し、ビルドが正しく行われたかどうかをチェックしてる

nus3nus3

snapshotのタスク実行時にbuildした際のステータスがBROKENだった場合は、interactionTestFailuresCountなどをみて、Interaction testsが落ちていた場合はchromaticのactionをfailedにして落ちたテストケースを伝える

nus3nus3

実行ログを見てみる

以下は実行ログを抜粋したもの

Run chromaui/action

Authenticating with Chromatic
    → Connecting to https://index.chromatic.com
Authenticated with Chromatic

Retrieving git information
Found 6 changed files:
Retrieved git information
    → Commit 'xxxx' on branch 'branch-name'; found 1 parent build and 6 changed files

Collecting Storybook metadata
Collected Storybook metadata

Initializing build
Initialized build

Building your Storybook
Storybook built in x minute x seconds

Publish your built Storybook
    → Validating Storybook files
Retrieving story files affected by recent changes
    → Traversing dependencies for 6 files that changed since the last build
Retrieved story files affected by recent changes
    → Found 5 story files affected by recent changes
Publishing your built Storybook
Publish complete in 28 seconds

Verifying your Storybook

Starting partial build

Capturing xx snapshots and skipping xxx snapshots.
Started build xxxx

Running xx tests affected by recent changes (skipping xxx tests)

✔ Build xxxx passed!

Build xxxx completed
    → Tested xxx stories across xx components; captured xx snapshots in xx seconds
nus3nus3

実行ログみてる感じ

  1. tokenを使ってchromaticに認証してもらう
  2. gitから差分を検索
  3. Storybookをビルド
  4. gitの差分から影響のあるstroyファイルを検出
  5. ビルドしたStorybookをpublish
  6. Verifying your Storybook?する
  7. 影響があったstoryファイルだけ部分的にビルドして、スナップショットをキャプチャ
  8. 影響のあったstoryのtestを実行
  9. キャプチャしたスナップショットのビジュアルの差異がないか確認

みたいな感じかな