You're on your way to the next level! Join the Kudos program to earn points and save your progress.
Level 1: Seed
25 / 150 points
1 badge earned
Challenges come and go, but your rewards stay with you. Do more to earn more!
What goes around comes around! Share the love by gifting kudos to your peers.
Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!
Join now to unlock these features and more
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:
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.
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 :
Hope that helps to address your question! Feel free to share any additional concerns with this case.
Atlassian Support Engineer