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

rusackas pushed a commit to branch ci/actions-timeline-standalone
in repository https://gitbox.apache.org/repos/asf/superset.git

commit abb698f683961f5acd6d764e34ba16fd5beba3b4
Author: Evan Rusackas <[email protected]>
AuthorDate: Mon Jul 27 22:10:27 2026 -0700

    ci: add Kesin11/actions-timeline to the heavy CI workflows
    
    Adds a per-job/step Gantt chart (rendered as a mermaid diagram in the run
    summary) to the 15 substantive CI workflows -- the 13 setup-backend
    consumers plus superset-frontend.yml and docker.yml, the other two
    heaviest CI paths. Skips trivial bot/label/notification workflows that run
    in seconds and have nothing worth visualizing.
    
    For single-job (or single-heavy-job-in-a-linear-chain) workflows, the step
    is registered first, before checkout, so its post-processing hook -- which
    is what actually renders the timeline -- captures the full job including
    other steps' own cleanup. For workflows with multiple independent parallel
    jobs, added a dedicated `actions-timeline` terminal job (`needs: [...]`,
    `if: always()`) instead of duplicating the step into each parallel job:
    the action fetches every job of the whole run from the GitHub API
    regardless of which job it executes in, so one copy that runs after
    every sibling job completes produces one authoritative timeline, while N
    copies dropped into N parallel jobs would each race to render an
    incomplete gantt before their siblings finish.
    
    `expand-composite-actions: true` is set everywhere so setup-backend's
    internal steps (Python setup, uv install, apt package caching, dependency
    install) show up as their own bars rather than one opaque blob -- directly
    useful given the last two PRs' worth of composite-action changes.
    
    `actions: read` is added wherever needed to read job/step timing from the
    Actions API, either to the workflow's top-level `permissions:` (when the
    job in question has no job-level override) or directly into the relevant
    job's own `permissions:` block (when one already exists, since a
    job-level block replaces rather than merges with the workflow-level one).
---
 .github/workflows/check-python-deps.yml               |  5 +++++
 .github/workflows/dependency-review.yml               |  5 +++++
 .github/workflows/docker.yml                          | 11 +++++++++++
 .github/workflows/pre-commit.yml                      |  5 +++++
 .github/workflows/superset-app-cli.yml                |  5 +++++
 .github/workflows/superset-docs-deploy.yml            |  5 +++++
 .github/workflows/superset-e2e.yml                    | 11 +++++++++++
 .github/workflows/superset-extensions-cli.yml         |  5 +++++
 .github/workflows/superset-frontend.yml               | 11 +++++++++++
 .github/workflows/superset-helm-lint-test.yml         |  5 +++++
 .github/workflows/superset-playwright.yml             |  5 +++++
 .github/workflows/superset-python-integrationtest.yml | 11 +++++++++++
 .github/workflows/superset-python-presto-hive.yml     | 11 +++++++++++
 .github/workflows/superset-python-unittest.yml        |  7 +++++++
 .github/workflows/superset-translations.yml           | 11 +++++++++++
 15 files changed, 113 insertions(+)

diff --git a/.github/workflows/check-python-deps.yml 
b/.github/workflows/check-python-deps.yml
index 77771022b92..21fac0c03bf 100644
--- a/.github/workflows/check-python-deps.yml
+++ b/.github/workflows/check-python-deps.yml
@@ -11,6 +11,7 @@ on:
 permissions:
   contents: read
   pull-requests: read
+  actions: read
 
 # cancel previous workflow jobs for PRs
 concurrency:
@@ -21,6 +22,10 @@ jobs:
   check-python-deps:
     runs-on: ubuntu-26.04
     steps:
+      - uses: 
Kesin11/actions-timeline@7bf79990b7c09f5dfb570ac30b814ca597bd538e # v3.1.1
+        with:
+          expand-composite-actions: true
+
       - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
         uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # 
v7.0.1
         with:
diff --git a/.github/workflows/dependency-review.yml 
b/.github/workflows/dependency-review.yml
index 6b69a214e9f..464502fe61d 100644
--- a/.github/workflows/dependency-review.yml
+++ b/.github/workflows/dependency-review.yml
@@ -20,6 +20,7 @@ concurrency:
 
 permissions:
   contents: read
+  actions: read
 
 jobs:
   dependency-review:
@@ -50,6 +51,10 @@ jobs:
     # You cannot use a liccheck.ini file in this workflow.
     runs-on: ubuntu-26.04
     steps:
+      - uses: 
Kesin11/actions-timeline@7bf79990b7c09f5dfb570ac30b814ca597bd538e # v3.1.1
+        with:
+          expand-composite-actions: true
+
       - name: "Checkout Repository"
         uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # 
v7.0.1
         with:
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index db9bb93bdae..e6d10e8270b 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -213,3 +213,14 @@ jobs:
         shell: bash
         run: |
           docker compose -f docker-compose-image-tag.yml up superset-init 
--exit-code-from superset-init
+
+  actions-timeline:
+    needs: [docker-build, docker-compose-image-tag]
+    if: always()
+    runs-on: ubuntu-26.04
+    permissions:
+      actions: read
+    steps:
+      - uses: 
Kesin11/actions-timeline@7bf79990b7c09f5dfb570ac30b814ca597bd538e # v3.1.1
+        with:
+          expand-composite-actions: true
diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml
index 7b93d78f04b..47481a04a24 100644
--- a/.github/workflows/pre-commit.yml
+++ b/.github/workflows/pre-commit.yml
@@ -15,6 +15,7 @@ on:
 
 permissions:
   contents: read
+  actions: read
 
 # cancel previous workflow jobs for PRs
 concurrency:
@@ -32,6 +33,10 @@ jobs:
         # rarely differ across patch versions, so 3x per PR is wasteful.
         python-version: ${{ github.event_name == 'pull_request' && 
fromJSON('["current"]') || fromJSON('["current", "next"]') }}
     steps:
+      - uses: 
Kesin11/actions-timeline@7bf79990b7c09f5dfb570ac30b814ca597bd538e # v3.1.1
+        with:
+          expand-composite-actions: true
+
       - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
         uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # 
v7.0.1
         with:
diff --git a/.github/workflows/superset-app-cli.yml 
b/.github/workflows/superset-app-cli.yml
index 70d012760ce..298cef8a2ba 100644
--- a/.github/workflows/superset-app-cli.yml
+++ b/.github/workflows/superset-app-cli.yml
@@ -11,6 +11,7 @@ on:
 permissions:
   contents: read
   pull-requests: read
+  actions: read
 
 # cancel previous workflow jobs for PRs
 concurrency:
@@ -40,6 +41,10 @@ jobs:
         ports:
           - 16379:6379
     steps:
+      - uses: 
Kesin11/actions-timeline@7bf79990b7c09f5dfb570ac30b814ca597bd538e # v3.1.1
+        with:
+          expand-composite-actions: true
+
       - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
         uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # 
v7.0.1
         with:
diff --git a/.github/workflows/superset-docs-deploy.yml 
b/.github/workflows/superset-docs-deploy.yml
index 8b5f4287cfb..b55f3bd66cc 100644
--- a/.github/workflows/superset-docs-deploy.yml
+++ b/.github/workflows/superset-docs-deploy.yml
@@ -30,6 +30,7 @@ concurrency:
 
 permissions:
   contents: read
+  actions: read
 
 jobs:
   config:
@@ -59,6 +60,10 @@ jobs:
     name: Build & Deploy
     runs-on: ubuntu-26.04
     steps:
+      - uses: 
Kesin11/actions-timeline@7bf79990b7c09f5dfb570ac30b814ca597bd538e # v3.1.1
+        with:
+          expand-composite-actions: true
+
       - name: "Checkout ${{ github.event.workflow_run.head_sha || github.sha 
}}"
         uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # 
v7.0.1
         with:
diff --git a/.github/workflows/superset-e2e.yml 
b/.github/workflows/superset-e2e.yml
index ca94f2c68e5..409de7e74e5 100644
--- a/.github/workflows/superset-e2e.yml
+++ b/.github/workflows/superset-e2e.yml
@@ -340,3 +340,14 @@ jobs:
             exit 1
           fi
           echo "playwright-tests result: $RESULT (changes: $CHANGES)"
+
+  actions-timeline:
+    needs: [cypress-matrix, playwright-tests]
+    if: always()
+    runs-on: ubuntu-26.04
+    permissions:
+      actions: read
+    steps:
+      - uses: 
Kesin11/actions-timeline@7bf79990b7c09f5dfb570ac30b814ca597bd538e # v3.1.1
+        with:
+          expand-composite-actions: true
diff --git a/.github/workflows/superset-extensions-cli.yml 
b/.github/workflows/superset-extensions-cli.yml
index 0ee6eb3505c..d1eaffee5e5 100644
--- a/.github/workflows/superset-extensions-cli.yml
+++ b/.github/workflows/superset-extensions-cli.yml
@@ -11,6 +11,7 @@ on:
 permissions:
   contents: read
   pull-requests: read
+  actions: read
 
 # cancel previous workflow jobs for PRs
 concurrency:
@@ -30,6 +31,10 @@ jobs:
       run:
         working-directory: superset-extensions-cli
     steps:
+      - uses: 
Kesin11/actions-timeline@7bf79990b7c09f5dfb570ac30b814ca597bd538e # v3.1.1
+        with:
+          expand-composite-actions: true
+
       - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
         uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # 
v7.0.1
         with:
diff --git a/.github/workflows/superset-frontend.yml 
b/.github/workflows/superset-frontend.yml
index 46cb237c4d8..9da3ec97ffd 100644
--- a/.github/workflows/superset-frontend.yml
+++ b/.github/workflows/superset-frontend.yml
@@ -195,3 +195,14 @@ jobs:
         run: |
           docker run --rm $TAG bash -c \
           "npm run build-storybook && npx playwright install-deps && npx 
playwright install chromium && npm run test-storybook:ci"
+
+  actions-timeline:
+    needs: [report-coverage, lint-frontend, validate-frontend, test-storybook]
+    if: always()
+    runs-on: ubuntu-26.04
+    permissions:
+      actions: read
+    steps:
+      - uses: 
Kesin11/actions-timeline@7bf79990b7c09f5dfb570ac30b814ca597bd538e # v3.1.1
+        with:
+          expand-composite-actions: true
diff --git a/.github/workflows/superset-helm-lint-test.yml 
b/.github/workflows/superset-helm-lint-test.yml
index db59101bfa9..650eff193e0 100644
--- a/.github/workflows/superset-helm-lint-test.yml
+++ b/.github/workflows/superset-helm-lint-test.yml
@@ -8,6 +8,7 @@ on:
 
 permissions:
   contents: read
+  actions: read
 
 # Serialize runs per PR without cancelling: when a first-time contributor's
 # queued runs are approved together, cancel-in-progress lets an older run
@@ -21,6 +22,10 @@ jobs:
   lint-test:
     runs-on: ubuntu-26.04
     steps:
+      - uses: 
Kesin11/actions-timeline@7bf79990b7c09f5dfb570ac30b814ca597bd538e # v3.1.1
+        with:
+          expand-composite-actions: true
+
       - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
         uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # 
v7.0.1
         with:
diff --git a/.github/workflows/superset-playwright.yml 
b/.github/workflows/superset-playwright.yml
index 944a3eabcb0..8daedebc61e 100644
--- a/.github/workflows/superset-playwright.yml
+++ b/.github/workflows/superset-playwright.yml
@@ -54,6 +54,7 @@ jobs:
     permissions:
       contents: read
       pull-requests: read
+      actions: read
     strategy:
       fail-fast: false
       matrix:
@@ -79,6 +80,10 @@ jobs:
         ports:
           - 16379:6379
     steps:
+      - uses: 
Kesin11/actions-timeline@7bf79990b7c09f5dfb570ac30b814ca597bd538e # v3.1.1
+        with:
+          expand-composite-actions: true
+
       # -------------------------------------------------------
       # Conditional checkout based on context (same as Cypress workflow)
       - name: Checkout for push or pull_request event
diff --git a/.github/workflows/superset-python-integrationtest.yml 
b/.github/workflows/superset-python-integrationtest.yml
index fd8c4a39b6d..c511705fb3d 100644
--- a/.github/workflows/superset-python-integrationtest.yml
+++ b/.github/workflows/superset-python-integrationtest.yml
@@ -255,3 +255,14 @@ jobs:
             exit 1
           fi
           echo "test-postgres result: $RESULT"
+
+  actions-timeline:
+    needs: [test-mysql, test-postgres, test-sqlite]
+    if: always()
+    runs-on: ubuntu-26.04
+    permissions:
+      actions: read
+    steps:
+      - uses: 
Kesin11/actions-timeline@7bf79990b7c09f5dfb570ac30b814ca597bd538e # v3.1.1
+        with:
+          expand-composite-actions: true
diff --git a/.github/workflows/superset-python-presto-hive.yml 
b/.github/workflows/superset-python-presto-hive.yml
index 0eb264e83f1..60dea43d0e9 100644
--- a/.github/workflows/superset-python-presto-hive.yml
+++ b/.github/workflows/superset-python-presto-hive.yml
@@ -158,3 +158,14 @@ jobs:
           verbose: true
           use_oidc: true
           slug: apache/superset
+
+  actions-timeline:
+    needs: [test-postgres-presto, test-postgres-hive]
+    if: always()
+    runs-on: ubuntu-26.04
+    permissions:
+      actions: read
+    steps:
+      - uses: 
Kesin11/actions-timeline@7bf79990b7c09f5dfb570ac30b814ca597bd538e # v3.1.1
+        with:
+          expand-composite-actions: true
diff --git a/.github/workflows/superset-python-unittest.yml 
b/.github/workflows/superset-python-unittest.yml
index 64f3c683ae6..7e5d8833547 100644
--- a/.github/workflows/superset-python-unittest.yml
+++ b/.github/workflows/superset-python-unittest.yml
@@ -101,7 +101,14 @@ jobs:
     if: always()
     runs-on: ubuntu-26.04
     timeout-minutes: 5
+    permissions:
+      contents: read
+      actions: read
     steps:
+      - uses: 
Kesin11/actions-timeline@7bf79990b7c09f5dfb570ac30b814ca597bd538e # v3.1.1
+        with:
+          expand-composite-actions: true
+
       - name: Check unit-tests result
         env:
           RESULT: ${{ needs.unit-tests.result }}
diff --git a/.github/workflows/superset-translations.yml 
b/.github/workflows/superset-translations.yml
index d0a3eb69006..8ccc6030331 100644
--- a/.github/workflows/superset-translations.yml
+++ b/.github/workflows/superset-translations.yml
@@ -153,3 +153,14 @@ jobs:
       - name: Fail if regression detected
         if: steps.regression.outcome == 'failure'
         run: exit 1
+
+  actions-timeline:
+    needs: [frontend-check-translations, babel-extract]
+    if: always()
+    runs-on: ubuntu-26.04
+    permissions:
+      actions: read
+    steps:
+      - uses: 
Kesin11/actions-timeline@7bf79990b7c09f5dfb570ac30b814ca597bd538e # v3.1.1
+        with:
+          expand-composite-actions: true

Reply via email to