Backend: Support variable description, options and default values at job level

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Release notes

Problem to solve

Provide an option for users to easily select and change the value for a pre-defined variable at job level. perhaps, even have a list to select from.

Original description The following discussion from !105502 (merged) should be addressed:
  • @leetickett-gitlab started a discussion: (+2 comments)

    Hey @ayufan - I just wanted to say thanks for making this happen! I just saw it in action for the first time and love it!

    Do you know if there is an appetite and issue to bring it at job level too? 🤞

/cc @dhershkovitch @jocelynjane

Intended users

User experience goal

Users should be made available an easier workflow to surface and maintain their pre-defined variables at job level.

Proposal

The YML syntax: Discussion thread

job1:
  stage: test
  variables:
    MY_VARIABLE:
      value: "1"
      options: 
        - "1"
        - "2"
        - "3"
  script:
    - echo $MY_VARIABLE
  when: manual

The UI: When the form to input variable appears on the job logs page, the key comes pre-filled and the value shows the first items from the list of options defined in the YML. #396859[pre-filled-jobs.png]

Further details

Permissions and Security

Documentation

Availability & Testing

Available Tier

Feature Usage Metrics

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

Users spend less time editing YAML for changing pre-defined variable values.

What is the type of buyer?

Is this a cross-stage feature?

What is the competitive advantage or differentiation for this feature?

Links / references

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 🤖