Missed Team ’24? Catch up on announcements here.

×
Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Repository variables and property files

David Smiles October 23, 2021

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
Atlassian Team members are employees working across the company in a wide variety of roles.
October 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
AUG Leaders

Atlassian Community Events