[go: up one dir, main page]

Skip to content

Design: Audit CI/CD page states

🧩 Problem

The pages under CI/CD take on different states depending on the state of the configuration, presence or absence of pipelines in the project, etc.

Currently, the empty states in CI/CD don't always communicate a coherent story and are confusing. An example is our onboarding empty states, where it's unclear which page under CI/CD is the place to start setting up your CI/CD configuration.

Another example is the pipelines page empty state when there's a CI/CD configuration but no pipelines. We don't make it clear that the configuration exists.

Proposal

As the first step in addressing the problems with the CI/CD empty states we should conduct an audit of all the different CI/CD page states and the conditions under which they change. We can collect the screenshots of how we treat those states in the UI and take note of the states that aren't being communicated well.

👁 CI/CD states audit

Pipelines page (also CI/CD in the nav)

States Current state Suggestions and comments
No configuration and no pipelines image
Configuration exists, there's pipelines image Link to the pipeline editor CI Lint rather than the standalone linter.
Pipelines exist, but the configuration was removed image There's no indication that the config was removed. We should probably communicate it somehow in the Pipelines page.
With configuration, but no pipelines image We show the same as No configuration and no pipelines, which means that if you want to manually run the pipeline, you can't access the button to do so. We need to show the pipelines page and a button to run the pipeline when a config is available.

Editor

States Current state Suggestions and comments
No configuration on any branch and no ADO image Should we provide an option to enable ADO? For example, we could link to the docs. 🤔 From the user's perspective, it'd be useful to learn about ADO when they're considering CI/CD.
ADO enabled (no CI/CD config) image When ADO is enabled we need to communicate it in the pipeline editor empty state. It should be clear that ADO pipeline is running, and provide a path towards investigating that pipeline and disabling ADO and enabling a custom pipeline instead.
ADO enabled (overrides the existing CI/CD config) image We don't communicate in any way that the current CI/CD configuration isn't being used and that ADO pipeline is actually enabled. We need to communicate that ADO is running and provide a path toward investigating that pipeline and disabling it. Could be just an alert with a link as an MVC. Eventually it'd be ideal to show the ADO configuration in the pipeline editor, and make it possible to build upon it and mess with that file.
Configuration on some feature branch, but not on main branch image When a config file exists on a different branch, we should make it known from the empty state. It should be easy to see that you have a config on that branch, and link a related MR if it exists. From there you can open the config on that branch, or create a new file on a different branch (or on main).
Configuration exists on main branch, but not on the selected feature branch image We open the file on the new branch so you can make changes and commit it. Is it a clear workflow? Can it be confusing that you don't see if the file already exists on the branch or if you need to commit it?

Other thoughts:

  • For self-managed instances it could be helpful to show the information about the available runners/ info on where to set up a runner before you work on your config. You need a runner to run a pipeline, so it'd make sense to nudge the user towards setting it up early in CI/CD onboarding.
  • When there's no pipelines, the pipeline status is hidden until there's a pipeline. See this comment for details

Jobs

States Current state Suggestions and comments
No jobs and no configuration no-config-jobs-empty-state
No jobs, but configuration exists config-exists-but-no-job-ran
Jobs exist but the configuration has been removed yet to test

Artifacts

You don't see an empty state for artifacts page.

States Current state Suggestions and comments

Schedules

States Current state Suggestions and comments
No schedules has been created yet Screen_Shot_2021-09-14_at_2.26.27_PM
At least one schedule has been created Screen_Shot_2021-09-14_at_2.28.02_PM

Test cases

States Current state Suggestions and comments
No test cases Screen_Shot_2021-09-14_at_2.28.39_PM

CI/CD Analytics

State Image Comments
No config no-config-cicd-analytics
Config + pipeline exists, no data to show graphs yet config-exists-not-enough-info-for-graphs
Edited by Nadia Sotnikova