In-product prompt for CI Adoption if Jenkins file is detected
Summary
To support continued efforts to drive CI use case adoption, we want to increase discoverability of GitLab's CI offering in order to encourage migration to it. An example of this is migrating from Jenkins CI to GitLab.
Notify users who are using Jenkins with a prompt that contains Jenkins migration information
Ties to Q3 KR: https://gitlab.com/gitlab-com/gitlab-OKRs/-/work_items/4004
Business Problem
The focus of the SCM to CI Adoption working group is on paying customers. Majority of our paid customer base is on Self-Managed so this is where the biggest opportunity is present. We would like to explore also showing this prompt to SaaS customers.
Problem Statement
As a Jenkins CI user who has not set up pipelines in GitLab, I want to understand how GitLab CI can meet my needs and how to migrate, so I can make an informed decision on which service to use.
Solution
This first iteration will focus on increasing discoverability.
We want to make users aware that GitLab has a CI offering. When a Jenkins file is detected in a repository, we want to notify the user of GitLab's CI offering and migration support resources (docs + webinars/tutorials) on the pipelines page.
Out of scope: GitLab has a migration tool but it requires a lot of massaging and human intervention. This will not be highlighted in this first iteration.
Design
Implementation
- Prompt will be a 'card' on the pipelines page #423489 (comment 1564217041)
- Display to both SaaS and Self Managed users.
- We need to have the ability to detect a Jenkins file in a repository
- From @fabiopitino:
- Jenkinsfiles can be created anywhere in the repository and could in theory have any arbitrary name but the recommended scenario is to have a
Jenkinsfile
in the root directory of the repository - To know whether it exists we could send a request to Gitaly for the presence of a
Jenkinsfile
in the HEAD commit of the default branch.
- Jenkinsfiles can be created anywhere in the repository and could in theory have any arbitrary name but the recommended scenario is to have a
- We want to display this prompt on the pipelines page when no pipelines are setup
- If a Jenkins file is detected in a repository, this implies someone is not using GitLab’s CI features and thus we should show the prompt.
- From @fabiopitino:
- Display on a per user basis
- Only show to Owners, Maintainers and Developers.
- User can interact with the 'card':
- Click CTA link: directs to https://docs.gitlab.com/ee/ci/migration/plan_a_migration.html
- Tracking: We want to understand when this prompt is rendered (is this possible?) and acted upon (i.e. CTA is clicked)
- We want to change the height of both 'cards' shown
- To accommodate more text in the new card(Migrate to GitLabs from Jenkins) the height of both the cards has to be increased by about 24 px(or more if needed).
- bg color for new card: $blue-50
- We want to change the height of both 'cards' shown
Snowplow Tracking
Activity | Action | Label |
---|---|---|
Prompt is rendered | render |
migrate_from_jenkins_prompt |
Start with a migration plan CTA is clicked |
template_clicked |
migrate_from_jenkins_prompt |