Skip to content
GitLab
Next
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • GitLab GitLab
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 44,758
    • Issues 44,758
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 1,331
    • Merge requests 1,331
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GitLab.orgGitLab.org
  • GitLabGitLab
  • Issues
  • #30101
Closed
Open
Issue created Jul 12, 2019 by Bruce Albrecht@bgalbrecht0 of 6 checklist items completed0/6 checklist items

Generate Run Pipeline form with pre-filled variables from .gitlab-ci.yml

Release notes

Previously when you wanted to manually run a pipeline, you needed to know the relevant variables and then enter them on the "Run Pipeline" page. This can be tediously and error-prone if there are numerous key/value pairs to enter. Now the Run Pipeline form wil generate with pre-filled variables for your pipeline based on the variable definitions in your .gitlab-ci.yml file.

Problem to solve

On the Pipelines page (example) when Run Pipeline button is selected, the "Run Pipeline" form (example) only displays a simplistic form that assumes the user knows every variable name (key) and value that needs to be entered which is problematic for these reasons:

  • user may not know all the required variable key/values that must be entered
  • the task is tedious and inefficient when there are many key/values to enter
  • manual entry is error-prone

Intended users

  • Sasha (Software Developer)
  • Devon (DevOps Engineer)
  • Any user that needs to manually trigger pipelines, typically a developer or devops engineer

User experience goal

Proposal

When Run Pipeline is selected, the form that allows the user to add variable definitions for running a pipeline or playing a job has pre-filled key/value pairs in the input fields based on variable definitions in the .gitlab-ci.yml file.

Example:

variables:
 TEST:
   value: "some value" # this would be the default value
   description: "This variable makes cakes delicious" # makes this variable appear on the Run Pipeline form

NOTE: Only variables with keyword description will pre-fill on the Run Pipeline form. This is to differentiate variables to surface as "inputs" vs variables just for passing information between jobs; we want to avoid surfacing all variables in a .gitlab-ci.yml as "inputs".

Further details

Clarifications and notes from comments:

  1. Variables defined in .gitlab-ci.yml are pipeline inputs at the root level (not job inputs)
  2. "Play manual job" button is not in scope for this issue

[Original author's note] We have about 100 developers who are running pipelines or playing jobs daily and need to set 6-10 variables every time they do so. Having to cut and paste each variable name in addition to the value is tedious, and potentially time consuming if they leave out a required variable and have to start another pipeline.

Permissions and Security

Documentation

Availability & Testing

  • Unit test changes - Yes, there should be unit tests created for any new added logics
  • Integration test changes - Yes, there should be integration feature specs to see variable render in UI with the expected description.
  • 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

https://gitlab.com/gitlab-org/gitlab-ce/issues/24935 Specify variables when running a manual job

https://gitlab.com/gitlab-org/gitlab-ce/issues/35896 Passing variables to CI/CD pipelines in all possible scenarios

https://gitlab.com/gitlab-org/gitlab-ce/issues/48974 Pipeline variables to be shown on the pipeline run page

Edited Nov 10, 2020 by Thao Yeager
Assignee
Assign to
Time tracking