Visualization of .gitlab-ci.yml static file (MVC)

Release notes

Description: A complex CI configuration can be difficult to understand when trying to imagine how your pipeline might behave (or misbehave). Without a visual aid, it could be impossible to form a mental image of all the dependencies between countless jobs. In our first iteration of pipeline visualization, you can now see a graphic representation of your .gitlab-ci.yml file. Then you can decide for yourself if a picture really is worth a thousand words.

https://docs.gitlab.com/ee/ci/yaml/README.html

Problem to solve

A .gitlab-ci.yml file can be difficult to understand, even for the original author if it is a complex CI configuration. Without a visualization of the pipeline that is created by a yml file, it could be hard to imagine how the pipeline might behave.

Intended users

User experience goal

When a user is viewing (not editing) a CI yaml file in a simple editor they should have the option to see a graphic representation of the file.

Proposal

Translate the .gitlab-ci.yml file into a graphic visualization when viewing the static, checked-in file in the simple editor (https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/.gitlab-ci.yml).

This first iteration of the feature is a view only representation with these elements:

  • From the static view of .gitlab-ci.yml file, add method for user to click to a graphical visualization of the file
  • Show stages and differentiate between stages with jobs and those without
  • Show jobs under the stage to which they belong
  • Show dependency between jobs (those using needs keyword) with a visual connecting line

See Design section for most current illustrations.

Further details

This graph is built to replace the current pipeline graph eventually once it is prove to work well. There first effort to use thi graph as the new pipeline view is being made in a spike here:

#249094 (closed)

Permissions and Security

Documentation

Availability & Testing

Please list the test areas (unit, integration and end-to-end) that needs to be added or updated to ensure that this feature will work as intended. Please use the list below as guidance.

  • Unit test changes - yes, there should be unit test for new added logics
  • Integration test changes - yes, there should be frontend integration tests to make sure components are rendered
  • End-to-end test change - not required

What does success look like, and how can we measure that?

What is the type of buyer?

Is this a cross-stage feature?

Links / references

Dovetail insight: https://dovetailapp.com/projects/4a4421a9-9fb4-4e16-acab-9ba9042e741d/insights/present/8704f88d-9b06-4ab1-987d-b21cc18e8f6d

This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.

Edited by 🤖 GitLab Bot 🤖