You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by hu...@apache.org on 2022/08/26 21:56:31 UTC

[superset] branch master updated: Splitting into two separate chromatic jobs to reduce conditional logic causing run issues (#21219)

This is an automated email from the ASF dual-hosted git repository.

hugh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git


The following commit(s) were added to refs/heads/master by this push:
     new f09c4327f8 Splitting into two separate chromatic jobs to reduce conditional logic causing run issues (#21219)
f09c4327f8 is described below

commit f09c4327f88e812c982a1a7154cb6e593a177ac6
Author: Eric Briscoe <er...@gmail.com>
AuthorDate: Fri Aug 26 14:56:19 2022 -0700

    Splitting into two separate chromatic jobs to reduce conditional logic causing run issues (#21219)
---
 .github/workflows/chromatic-master.yml             | 55 ++++++++++++++++++++++
 .../workflows/{chromatic.yml => chromatic-pr.yml}  | 54 +++++++++------------
 2 files changed, 76 insertions(+), 33 deletions(-)

diff --git a/.github/workflows/chromatic-master.yml b/.github/workflows/chromatic-master.yml
new file mode 100644
index 0000000000..6cdf10506f
--- /dev/null
+++ b/.github/workflows/chromatic-master.yml
@@ -0,0 +1,55 @@
+# .github/workflows/chromatic.yml
+# seee https://www.chromatic.com/docs/github-actions
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Workflow name
+name: 'Chromatic Storybook Master'
+
+# Event for the workflow
+# Only run if changes were made in superset-frontend folder of repo on merge to Master
+on:
+  # This will trigger when a branch merges to master when the PR has changes in the frontend folder updating the chromatic baseline
+  push:
+    branches:
+      - master
+    paths:
+      - "superset-frontend/**"
+
+# List of jobs
+jobs:
+  chromatic-deployment:
+    # Operating System
+    runs-on: ubuntu-latest
+    # Job steps
+    steps:
+      - uses: actions/checkout@v1
+      - name: Install dependencies
+        run: npm ci
+        working-directory: superset-frontend
+      # 👇 Build and publish Storybook to Chromatic
+      - name: Build and publish Storybook to Chromatic
+        id: chromatic-master
+        uses: chromaui/action@v1
+        # Required options for the Chromatic GitHub Action
+        with:
+          # 👇 Location of package.json from root of mono-repo
+          workingDir: superset-frontend
+          # 👇 Chromatic projectToken, refer to the manage page to obtain it.
+          projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
+          exitZeroOnChanges: true # 👈 Option to prevent the workflow from failing
+          autoAcceptChanges: true # 👈 Option to accept all changes when merging to master
diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic-pr.yml
similarity index 56%
rename from .github/workflows/chromatic.yml
rename to .github/workflows/chromatic-pr.yml
index 66afc24290..bb4061af67 100644
--- a/.github/workflows/chromatic.yml
+++ b/.github/workflows/chromatic-pr.yml
@@ -18,28 +18,22 @@
 #
 
 # Workflow name
-name: 'Chromatic'
+name: 'Chromatic Pull Request'
 
-# Event for the workflow
-# Only run if changes were made in superset-frontend folder of repo
+# This will allow us to see how the Storybook builds when a PR has been created that has changes in the frontend folder
+# NOTE: pull_request_target actions will always run the version of this action on master branch
+# you will not see changes in the action behavior until this action's changes have been merged to master.
+# This is a security precaution so that PR coming from a fork cannot access a Github secret without a repo
+# committer aproving and merging the PR declaring the action safe.
 on:
-  # This will trigger when a branch merges to master when the PR has changes in the frontend folder updating the chromatic baseline
-  push:
-    branches:
-      - master
-    paths:
-      - "superset-frontend/**"
-  # this will allow us to see how the Storybook builds when a PR has been created that has changes in the frontend folder
-  # NOTE: pull_request_target actions will always run the version of this action on master branch
-  # you will not see changes in the action behavior until this action's changes have been merged to master.
-  # This is a security precaution so that PR coming from a fork cannot access a Github secret without a repo
-  # committer aproving and merging the PR declaring the action safe.
   pull_request_target:
+
     # We want this action to run under specific pull request changes
     # opened: pull request is created
     # synchronize: commit(s) pushed to the pull request
     # reopened: closed pull request is reopened
     types: [opened, synchronize, reopened]
+    # This action will only run if one or more files have changes under the superset-frontend folder
     paths:
       - "superset-frontend/**"
 
@@ -54,22 +48,9 @@ jobs:
       - name: Install dependencies
         run: npm ci
         working-directory: superset-frontend
-      # 👇 Checks if the branch is not master and runs Chromatic
-      - name: Publish to Chromatic
+      # 👇 Build and publish Storybook to Chromatic
+      - name: Build and publish Storybook to Chromatic
         id: chromatic-pr
-        if: github.ref != 'refs/heads/master'
-        uses: chromaui/action@v1
-        # Required options for the Chromatic GitHub Action
-        with:
-          # 👇 Location of package.json from root of mono-repo
-          workingDir: superset-frontend
-          # 👇 Chromatic projectToken, refer to the Chromatic manage page to obtain it.
-          projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
-          exitZeroOnChanges: true # 👈 Option to prevent the workflow from failing
-      # 👇 Checks if the branch is master and accepts all changes in Chromatic
-      - name: Publish to Chromatic and auto accept changes
-        id: chromatic-master
-        if: github.ref == 'refs/heads/master'
         uses: chromaui/action@v1
         # Required options for the Chromatic GitHub Action
         with:
@@ -77,10 +58,17 @@ jobs:
           workingDir: superset-frontend
           # 👇 Chromatic projectToken, refer to the manage page to obtain it.
           projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
-          autoAcceptChanges: true # 👈 Option to accept all changes when merging to master
-          exitZeroOnChanges: true # 👈 Option to prevent the workflow from failing
+          exitZeroOnChanges: true # 👈 Option to prevent the workflow from failing when changes are detected
+
+  # Put a comment on the PR with link to latest build of the Storybook for this branch
+  storybook-link-comment:
+    # Operating System
+    runs-on: ubuntu-latest
+    # job steps
+    needs: chromatic-deployment
+    if: needs.chromatic-deployment.outputs.storybookUrl && needs.chromatic-deployment.outputs.buildUrl
+    steps:
       - name: Echo Storybook build link
-        if: ${{ success() }}
         uses: actions/github-script@v6
         with:
           github-token: ${{secrets.GITHUB_TOKEN}}
@@ -89,5 +77,5 @@ jobs:
               issue_number: context.issue.number,
               owner: context.repo.owner,
               repo: context.repo.repo,
-              body: 'Storybook has completed and can be viewed at ${{ steps.chromatic-pr.outputs.storybookUrl }}'
+              body: 'Storybook has completed and can be viewed at ${{ needs.chromatic-deployment.outputs.storybookUrl }}.  Chromatic visual test results can be viewed at ${{ needs.chromatic-deployment.outputs.buildUrl }} '
             })