Skip to content

Inform users when there are 100+ jobs in a stage in pipeline graph

What does this MR do and why?

In the pipeline graph, we have only fetch 100 jobs per stage for two reasons:

  • Performance, as getting more jobs would be costly
  • Because we cannot draw the job dependencies until all jobs are loaded. This mean that if we paginated for example, we would need to redraw the lines every time you load more jobs and this would also be very performance intensive (plus, paginating in a column would be quite odd, but overall you get the gist 😸 )

This MR adds a simpler first step to clarify this state where if any stage has exactly 100 jobs, this mean that we fetched the maximum, so we are going to display a message that warns the user that what they are seeing is incomplete and to go to the Job tab (with a link) to see all jobs.

Screenshots or screen recordings

Before After
Screenshot_2023-07-06_at_11.03.21_AM Screenshot_2023-07-07_at_9.06.25_AM

Screen_Recording_2023-07-06_at_1.34.00_PM

How to set up and validate locally

  1. Create a new project
  2. Generate a very large CI config file with at least 100 jobs in a stage. To do this, you can use the dummy-ci-config-generator tool: https://gitlab.com/f_caplette/dummy-ci-config-generator. There are instructions in the repo, but all you need is to go in that repo and run node index.js -j 1000 -s 40 -n 100 and it should do the trick!
  3. Copy the content of the generated CI file
  4. Navigate to Build -> Pipeline Editor in your new project
  5. Past the CI config there
  6. Commit
  7. Navigate to the pipeline page/ run a new pipeline
  8. Notice the new banner that warns you that one of your stage has more than 100 jobs.

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Related to #411579 (closed)

Edited by Frédéric Caplette

Merge request reports