Is it possible to preserve environment variables on bamboo specs publish?

From my understanding would be logical to nullify variables/triggers/permissions for the environment if the one explicitly passed an empty list in specs. No empty list - nothing should be touched. How to combine UI and Specs now? I publish deployment environments. Users modify variables. I publish again and poof - all user settings are gone.

1 answer

This widget could not be displayed.

I publish deployment environments. Users modify variables. I publish again and poof - all user settings are gone.

Could you please provide more details how your workflow looks like?

Why users do modify variables in environments using UI, instead of simply updating them in Bamboo Specs?

  • What do you gain by this?
  • What blocks you from keeping them in Specs?

By maintaining variables in Bamboo Specs and versioning specs in VCS, you gain significant benefits, which is tracking of environment changes, ability to rollback to previous version etc.

 

No empty list - nothing should be touched.

Bamboo Specs does not distinguish between "no empty list" and "empty list". Empty simply means no elements in the list. Which means that any existing settings shall be removed. No matter whether it's about variables or any other kind of entity.

PS: there is only one exception. In Plan and Job you can use "noXyz()" methods:

  • com.atlassian.bamboo.specs.api.builders.plan.Plan#noDependencies
  • com.atlassian.bamboo.specs.api.builders.plan.Plan#noNotifications
  • com.atlassian.bamboo.specs.api.builders.plan.Job#noPluginConfigurations
  • com.atlassian.bamboo.specs.api.builders.plan.Plan#noPluginConfigurations

They are deprecated and provided only for backward compatibility with Bamboo 6.0. Support for dependencies, notifications and plugin configurations was introduced in Bamboo 6.1.

We've got different types of users that work with deploy environments: someone maintains it, someone deploys. The deploys are parametrized: which database to use, what to deploy, etc.

An average QA engineer won't use git, won't do commits but rather will use UI to configure some environment parameters for the deploy.

For maintenance it is easier to go for specs, because we can easily do bulk changes, or can easily add a new environment into a list of 100 environments, or can easily merge/split/copy environments across different projects. Doing it with UI is very inconvenient. So we want to use Specs and track it with git, but do not want to mess with parameters configured by other engineers.

Suggest an answer

Log in or Sign up to answer
Community showcase
Posted 2 hours ago in Europe

Speaker Required!

Hey, We're currently organising an AUG event on Tuesday the 23rd of October. It's being hosted by Tata Consultancy Services near High Street Kensington station. We currently require one more spea...

25 views 0 0
View post

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you