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.

How to approach legacy API development
Development

How to approach legacy API development

April 3, 2024

Legacy APIs are complex, often incompatible, and challenging to maintain. MichiganLabs’ digital product consultants and developers share lessons learned for approaching legacy API development.

Read more
Product Strategy
Business Design Process

Product Strategy

November 22, 2022

A look at Product Strategy at MichiganLabs. Why we do it, what it is, what it is not, and how we approach it.

Read more
Kotlin Multiplatform
Android Development iOS

Kotlin Multiplatform

July 14, 2022

A brief look at Kotlin Multiplatform Mobile, a newer cross-platform mobile application framework.

Read more
View more articles