Show pipeline/stage progress via favicon (in MR page)
What does this MR do?
We can calculate pipeline/stage progress by counting active builds per total count of builds. If there is one running build and three finished builds, then the progress of the pipeline is 75%. It's that simple, but, we don't show this information anywhere in GitLab, today.
There is the other approach to extract more accurate build progress by extracting sections from job traces, however, there are multiple hurdles with it that 1. It has to store progress in Redis per build 2. Calculating progress could incur N+1 to Redis. That said, that approach is quite hard to accomplish without harming our production load.
In this iteration, we show the calculated progress in favicon as the first iteration. Thus, this MR requires UX frontend input.
All we need to do extending this running icon to:
- When progress is less than 25%, the system shows this icon (TBD).
- When progress is more than 25% and less than 50%, the system shows this icon (TBD).
- When progress is more than 50% and less than 75%, the system shows this icon (TBD).
- When progress is more than 75% and less than 100%, the system shows this icon (TBD).
Related: https://gitlab.com/gitlab-org/gitlab-ce/issues/28168
Does this MR meet the acceptance criteria?
Conformity
-
Changelog entry -
Documentation created/updated or follow-up review issue created -
Code review guidelines -
Merge request performance guidelines -
Style guides -
Database guides -
Separation of EE specific content
Performance and testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. -
Tested in all supported browsers
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
-
Label as security and @ mention @gitlab-com/gl-security/appsec
-
The MR includes necessary changes to maintain consistency between UI, API, email, or other methods -
Security reports checked/validated by a reviewer from the AppSec team