Skip to content

ci: add Kesin11/actions-timeline to the heavy CI workflows - #42507

Open
rusackas wants to merge 1 commit into
masterfrom
ci/actions-timeline-standalone
Open

ci: add Kesin11/actions-timeline to the heavy CI workflows#42507
rusackas wants to merge 1 commit into
masterfrom
ci/actions-timeline-standalone

Conversation

@rusackas

Copy link
Copy Markdown
Member

SUMMARY

Supersedes #42505 (retargeted to master directly -- 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-backend consumers plus superset-frontend.yml and docker.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:

  • Single-job workflows (or a linear chain with one heavy job at the end): the step goes first, before checkout. It's a post-action -- the actual timeline rendering happens in its post-processing hook, and registering it first means that hook runs last, after every other step's own cleanup, capturing the whole job.
  • Workflows with multiple independent parallel jobs (e.g. test-mysql/test-postgres/test-sqlite, or the frontend's 6-job fan-out): added one dedicated actions-timeline terminal 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: true is set everywhere, so setup-backend's internal steps show up as their own bars instead of one opaque blob once #42498 lands too.

actions: read permission is added wherever the new step needs it to read job/step timing from the Actions API -- to the workflow's top-level permissions: block when the job has no override, or directly into the job's own permissions: block when one already exists (job-level permissions replace the workflow-level ones rather than merging with them).

TESTING INSTRUCTIONS

  • pre-commit run (zizmor GHA security audit) and npx @action-validator/cli (the schema check github-action-validator.yml runs in CI) both pass on all 15 touched files.
  • CI on this PR is itself the test: every touched workflow should produce a Gantt-chart summary on its run page.

ADDITIONAL INFORMATION

  • Has associated issue:
  • Required feature flags:
  • Changes UI
  • Includes DB Migration (follow approval process in SIP-59)
    • Migration is atomic, supports rollback & is backwards-compatible
    • Confirm DB migration upgrade and downgrade tested
    • Runtime estimates and downtime expectations provided
  • Introduces new feature or API
  • Removes existing feature or API

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).
@dosubot dosubot Bot added github_actions Pull requests that update GitHub Actions code infra Namespace | Anything related to infrastructure labels Jul 28, 2026
@bito-code-review

bito-code-review Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Bito Automatic Review Skipped - Files Excluded

Bito didn't auto-review this change because all changed files are in the exclusion list for automatic reviews. No action is needed if you didn't intend for the agent to review it. Otherwise, to manually trigger a review, type /review in a comment and save.
You can change the excluded files settings here, or contact your Bito workspace admin at evan@preset.io.

@codecov

codecov Bot commented Jul 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 65.27%. Comparing base (3095d7b) to head (abb698f).

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     
Flag Coverage Δ
hive 38.30% <ø> (ø)
javascript 71.36% <ø> (ø)
mysql 57.58% <ø> (ø)
postgres 57.62% <ø> (+<0.01%) ⬆️
presto 40.22% <ø> (ø)
python 59.02% <ø> (+<0.01%) ⬆️
sqlite 57.25% <ø> (ø)
unit 100.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

github_actions Pull requests that update GitHub Actions code infra Namespace | Anything related to infrastructure size/L

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant