Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Repository variables and property files

Hi all,

I'm currently using a BitBucket pipeline to run a Maven / Java JUnit tests to exercise a REST API. This runs fine, but it requires a username and password which is currently written in a property file.  I want to move the values from the property file and into some respository variables, but retaining the property files.

I've configured the respository variables and and I can access them in my pipleline script using $VARIABLE_NAME, etc.

However, I don't know if its possible, but can I also use the same repository variables in my property files which my Java program reads when starting?

For example, I have property file called database.properties with some configuration and inserted the respository variables like this:

database.server=${DATABASE_SERVER}

database.username=${DATABASE_USERNAME}

database.password=${DATABASE_PASSWORD}

somevalue=${VARIABLE_NAME}

When I run the pipleline, the variables are read fine in the bitbucket-pipeline.yml file,  but when the program runs there are no values in the property file.  Is there some additional processing of the properties file required?

Any help or advice is appreciated.

Kind regards,
David

 

 

1 answer

0 votes
Patrik S Atlassian Team Oct 25, 2021

Hello @David Smiles

Thank you for reaching out to Atlassian Community!

I've reviewed your case, and as per Variables and Secrets documentation, when your pipeline build starts, all the user-defined variables are configured as Environment Variables in the build container.

As you already confirmed, the commands and scripts invoked on the YML can use the variables by referencing them as $VARIABLE_NAME. However, each language handles/references environmental variables differently, and it's up to your program to interpret that. In your case, you can have your environment variables in the properties file, but Java will not automatically recognise them as environmental variables and therefore will not replace them with their actual values.

To help you proceed further, I have the following suggestions :

 

  • Write a function in your Java program that handles the environment variable substitution when you read the property file
  • Instead of reading from the property file, directly reference the variables in your Java program, as this example:
    • System.getenv("VARIABLE_NAME")

Hope that helps to address your question! Feel free to share any additional concerns with this case.

Best regards,

Patrik S

Atlassian Support Engineer

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Bitbucket

📣 Calling Bitbucket Data Center customers to participate in research

Hi everyone, Are you Bitbucket DC customer? If so, we'd love to talk to you! Our team wants to dive deep to understand your long-term plans regarding Bitbucket DC and Atlassian Cloud. Do you plan...

217 views 2 5
Read article

Community Events

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

Find an event

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

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you