ci: add Kesin11/actions-timeline to the heavy CI workflows - #42507
Open
rusackas wants to merge 1 commit into
Open
ci: add Kesin11/actions-timeline to the heavy CI workflows#42507rusackas wants to merge 1 commit into
rusackas wants to merge 1 commit into
Conversation
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).
rusackas
requested review from
betodealmeida,
dpgaspar,
eschutho,
geido,
hainenber,
kgabryje,
mistercrunch,
nytai,
sadpandajoe,
sha174n and
villebro
as code owners
July 28, 2026 05:23
9 tasks
Contributor
|
Bito Automatic Review Skipped - Files Excluded |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #42507 +/- ##
=======================================
Coverage 65.27% 65.27%
=======================================
Files 2795 2795
Lines 157832 157832
Branches 36079 36079
=======================================
+ Hits 103022 103025 +3
+ Misses 52817 52815 -2
+ Partials 1993 1992 -1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
SUMMARY
Supersedes #42505 (retargeted to
masterdirectly -- this doesn't touch any of the same lines as #42498, so it doesn't need to wait on it).Kesin11/actions-timeline renders a Gantt chart (mermaid diagram) of every job and step's duration directly in the run summary page. Arguably this should have been step zero before optimizing CI -- instead of guessing where the minutes go, this makes it visible.
Added to the 15 substantive CI workflows: the 13
setup-backendconsumers plussuperset-frontend.ymlanddocker.yml, the other two heaviest CI paths. Skipped the trivial bot/label/notification workflows (labeler, welcome-new-users, no-hold-label, etc.) that run in seconds and have nothing worth visualizing.Placement:
test-mysql/test-postgres/test-sqlite, or the frontend's 6-job fan-out): added one dedicatedactions-timelineterminal job (needs: [...],if: always()) instead of duplicating the step into every parallel job. The action fetches every job of the entire run from the GitHub API regardless of which job it executes in, so a single copy that waits for all siblings to finish produces one complete, authoritative timeline -- N copies dropped into N parallel jobs would each render an incomplete gantt racing against their still-running siblings.expand-composite-actions: trueis set everywhere, sosetup-backend's internal steps show up as their own bars instead of one opaque blob once #42498 lands too.actions: readpermission is added wherever the new step needs it to read job/step timing from the Actions API -- to the workflow's top-levelpermissions:block when the job has no override, or directly into the job's ownpermissions:block when one already exists (job-level permissions replace the workflow-level ones rather than merging with them).TESTING INSTRUCTIONS
pre-commit run(zizmorGHA security audit) andnpx @action-validator/cli(the schema checkgithub-action-validator.ymlruns in CI) both pass on all 15 touched files.ADDITIONAL INFORMATION