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

Unable to access environment variables in GCP artifact after using Bitbucket deploy pipeline



Not sure if I have misunderstood how things work here, but I want to pass variables from my local .env-files to my artifact whenever I do automatic deploy with bitbucket pipelines.

When running or deploying manually, I have an `.env`-file present locally, which I obviously don't want to commit. 

The build pipeline succeeds and it deploys a new version to GCP, but this version does not work, since it is unable to retrieve database configuration secret from my environment file. So it is practically useless.

I have set up bitbucket-pipelines.yml with the atlassian gcp-deploy-pipe. Relevant parts of file looks like this: 

- step:
name: Deploy
deployment: test
- echo "Deploying to GCP"
- pipe: atlassian/google-app-engine-deploy:1.0.0
PROJECT: 'test-123'
DEPLOYABLES: 'test.yaml'
PROMOTE: 'false'

<some more variables>

I have added both these variables, $GCP_SECRET and $MONGODB_CONNECTION_URI, to my deployment repository config inside bitbucket.

The GCP_SECRET works correctly, as I am allowed to push a new version to GCP. But clearly I have misunderstood how I should pass my actual environment variables when deploying like this.


I have also tried to add the variables inside the `test.yml`, listed in det DEPLOYABLES, and also added DB-url to GCP secret manager, but still no luck obtaining db connection.

runtime: nodejs
env: flex
instance_class: B1
instances: 1
NODE_ENV: "test"


Any ideas on how to fix this will be greatly appreciated! Thank you!

EDIT: I try to access the variables in code like the following:


Bonus question on the side:

Is it possible to check health status of artifact pushed to GCP, and use result from healthcheck to determine if whole Bitbucket pipeline failed. This would be useful in this exact scenario, so I don't push gibberish to my test environment.

1 answer

0 votes

@lars_nedberg  Hi. Thanks for your question. Please, refer to this repo example: envsubst example repo
Its a good case to use envsubst  : you need to have template  to pass variables here and in your bitbucket-pipelines.yml you need to add code below before pipe executes:

- envsubst < test.template.yaml > test.yaml

You can look at additional information here: additional info 

Regards, Igor

Hi Igor,

Thank you so much for your reply. I didn't quite get the concept of the `test.template.yaml` file. 

However, I found this guide, which ultimately made everything work for me.

Basically I define a shell script in my repository, then runs the script inside the bitbucket pipeline, and populating my secret values with my bitbucket repository variables.

Thank you for your time and help! :)

Like Igor Stoyanov likes this

Suggest an answer

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

⭐ Calling all Bitbucket and DevOps experts: Special showcase opportunity ⭐

Hi, Bitbucket community! Are you a DevOps practitioner (or know one in your network)? Do you have DevOps tips, tricks, or learnings you'd like to share with the community? If so, we'd love to hea...

1,519 views 4 8
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