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

0 vote

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
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Published Thursday in Jira

5 ways you can make the most of Jira Software and Bitbucket Cloud

As part of the Bitbucket product team I'm always interested in better understanding what kind of impact the use of our tools have on the way you work. In a recent study we conducted of software devel...

64 views 0 5
Read article

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