[BUG?] How to declare an emtpy variable in Bamboo YAML specs?

fstr July 23, 2020

Hi,

I'm using Bamboo v7.0.4.

 

I have created a Bamboo plan with YAML specs and I would like to define an empty plan variable. If a user doesn't provide a value when they trigger the plan, the plan will have a check in place and fail.

I want to avoid using a dummy value as a placeholder value.

 

Bamboo plan as YAML specs to reproduce the issue:

version: 2
plan:
project-key: ABC
name: Empty Variable Test
key: EVT

variables:
MY_VARIABLE: ""

Using null as a value instead of an empty string, will lead to the same result:

version: 2
plan:
project-key: ABC
name: Empty Variable Test
key: EVT

variables:
MY_VARIABLE: null

Both will lead to an error when the specs are scanned by Bamboo:

23-Jul-2020 14:25:18	Bamboo YAML import failed: Could not determine YAML document version: variables / MY_VARIABLE: String must not be empty.

 

I flagged this topic as a probable bug, since it's possible to declare an empty variable when you configure a plan manually and it's also possible to then export the plan into Java specs, so I assume Java specs also allow empty variables.

 .variables(new Variable("MY_VARIABLE", ""))

 

I checked the Bamboo bug tracker in advance and couldn't find any related ticket.

 

Cheers

1 answer

1 accepted

0 votes
Answer accepted
Alexey Chystoprudov
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
July 23, 2020

YAML Specs doesn't allow to have empty values for String elements. So only workaround is to use dummy value

fstr July 23, 2020

Thanks for your clarification that the only solution right now is a dummy value.

 

Do you agree that this is a bug / regression compared to manual variable creation and Java specs, which both allow empty values, and should be fixed?

Like pBogey likes this
Alexey Chystoprudov
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
July 24, 2020

YAML is not replacement for Java code. You can't have loops or inline documentation or enums or what ever strict compilable language gives you. It's not possible to submit YAML from command line without repository configuration.

What I want to say is that some design decisions were made during YAML Specs implementation. One of them is inability to support empty Strings.

We're constantly working to improve parity between Java and YAML specs as hear strong demand from customers.

Created https://jira.atlassian.com/browse/BAM-21021 to track feedback and interest.

Like fstr likes this
Brett Shelton
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
July 6, 2022

@Alexey Chystoprudov ,

Bamboo should export only valid YAML specs though; If the exported YAML is invalid or incomplete, it should indicate that. 

If a complete and valid YAML spec can not be exported from a plan, it should:

  1. Indicate what is not supported
  2. Fail the export (and suggest changing configuration or exporting as Java spec)

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events