System Wide Environment Variables in Bamboo

January 29, 2015

We use Atlassian Bamboo as our build system of choice due to the convenient integration with the rest of our tools. Bamboo works great but has a few quirks. One that we recently ran in to while setting up some unit tests was that the tests were working locally but failing on the build server (a Mac Mini). The failing test was one relating to the ability to properly handle UTF characters in a push notification and was failing with

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-13: ordinal not in range(128)

Playing around, we were able to find that there was an environment variable being set during interactive login (LANG) that was not being set by the build server’s test runner. A simple method to work around this would be to add it to the configuration for that specific job but since we normally work in UTF, we tried looking for a better way to make the build server look like a normal system.

To add the environment variable system wide, we ended up having to add to the $BAMBOO_HOME/bamboo-agent.sh startup file. This start file sets up the environment that the build slave runs in so we can use it to help standardize our environments across multiple operating systems and user configurations and now we’re back to making sure that users can use all their UTF-enabled Emoji to keep

Joshua Hulst
Joshua Hulst
Co-founder & Managing Partner

Looking for more like this?

Sign up for our monthly newsletter to receive helpful articles, case studies, and stories from our team.

Between the brackets: MichiganLabs’ approach to software development
Development Team

Between the brackets: MichiganLabs’ approach to software development

February 12, 2024

Read more
How to Bring Order to the Chaos of Job Applications
Team

How to Bring Order to the Chaos of Job Applications

August 8, 2023

We discuss some tips & tricks for the job application process

Read more
MichiganLabs’ approach to product design: A strategic, problem-solving process
Design Team

MichiganLabs’ approach to product design: A strategic, problem-solving process

February 12, 2024

Product design, or UX design, is a strategic problem-solving process that leads to a valuable digital product. Learn what to expect when working with product designers for your custom software.

Read more
View more articles