name: 'deploy to chromatic' on: push: paths: - 'js/**' - 'gradio/themes/**' - '.github/workflows/deploy-chromatic.yml' - '!js/_website/**' jobs: get-current-pr: runs-on: ubuntu-latest outputs: pr_found: ${{ steps.get-pr.outputs.pr_found }} pr_number: ${{ steps.get-pr.outputs.number }} pr_labels: ${{ steps.get-pr.outputs.pr_labels }} steps: - uses: 8BitJonny/gh-get-current-pr@2.2.0 id: get-pr with: filterOutDraft: true comment-chromatic-start: uses: "./.github/workflows/comment-queue.yml" needs: get-current-pr secrets: gh_token: ${{ secrets.COMMENT_TOKEN }} with: pr_number: ${{ needs.get-current-pr.outputs.pr_number }} message: | storybook~pending~null visual~pending~0~0~null chromatic-deployment: needs: get-current-pr runs-on: ubuntu-latest outputs: changes: ${{ steps.publish-chromatic.outputs.changeCount }} errors: ${{ steps.publish-chromatic.outputs.errorCount }} storybook_url: ${{ steps.publish-chromatic.outputs.storybookUrl }} build_url: ${{ steps.publish-chromatic.outputs.buildUrl }} if: ${{ github.repository == 'gradio-app/gradio' && !contains(needs.get-current-pr.outputs.pr_labels, 'no-visual-update') }} steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - name: install dependencies uses: "./.github/actions/install-all-deps" with: always-install-pnpm: true skip_build: 'true' - name: build client run: pnpm --filter @gradio/client build - name: generate theme.css run: | . venv/bin/activate python scripts/generate_theme.py --outfile js/storybook/theme.css - name: build storybook run: pnpm build-storybook --quiet - name: publish to chromatic id: publish-chromatic uses: chromaui/action@v10 with: projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }} onlyChanged: true exitOnceUploaded: true comment-chromatic-end: uses: "./.github/workflows/comment-queue.yml" needs: [chromatic-deployment, get-current-pr] secrets: gh_token: ${{ secrets.COMMENT_TOKEN }} with: pr_number: ${{ needs.get-current-pr.outputs.pr_number }} message: | storybook~success~${{ needs.chromatic-deployment.outputs.storybook_url }} visual~success~${{ needs.chromatic-deployment.outputs.changes }}~${{ needs.chromatic-deployment.outputs.errors }}~${{ needs.chromatic-deployment.outputs.build_url }} comment-chromatic-fail: uses: "./.github/workflows/comment-queue.yml" needs: [chromatic-deployment, get-current-pr] if: always() && needs.chromatic-deployment.result == 'failure' secrets: gh_token: ${{ secrets.COMMENT_TOKEN }} with: pr_number: ${{ needs.get-current-pr.outputs.pr_number }} message: | storybook~failure~https://github.com/gradio-app/gradio/actions/runs/${{github.run_id}}/ visual~failure~0~0~https://github.com/gradio-app/gradio/actions/runs/${{github.run_id}}/