Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,295,860
Community Members
 
Community Events
165
Community Groups

Setting env vars in pipeline in configuration file

Deleted user Aug 12, 2021

I'm aware of the possibility to add pipeline environment variables and secret through the Bitbucket GUI. However I want to set my environmental variables in the `bitbucket-pipelines.yml` file.

 

Thus far the only way I found out to set these variables is by declaring the variables in the script of a step:

pipelines:
  default:
    steps:
      - step:
         script:
- ->
FOO=foo
BAR=bar
./app1.sh
- ->
FOO=foe
./app2.sh
- ->
FOO=fou
BAR=baz
./app1.sh && ./app2.sh

 

With the configuration above is a script defined with 3 commands. Each command is trying to run an shell script `app1.sh` and `app2.sh` they both require the environmental variables `FOO` and `BAR` to be set. Unfortunately in the example above only the first command will run the shell scripts with all variables. Although the first command defines the `BAR` variable, it is lost in the second command where only the `FOO` variable is defined. In the third command `app1.sh` runs fine but `app2.sh` runs without any variables.

 

I wonder if it is possible to set variables for all or one specific pipeline and for a single step? Where will be kept in mind that variables (re-)defined on a lower level will override the more global variables. Preferably without the use of a custom pipeline.

2 answers

1 accepted

0 votes
Answer accepted
Mark C Atlassian Team Aug 23, 2021

Hi @[deleted],

Welcome to the community.

Would it be possible for you to try to use export while using environment variables?
Also, would you be able to try to use the script individually?

pipelines:
  default:
      - step:
          script:
            - chmod u+x app1.sh
            - chmod u+x app2.sh
            - export FOO=foo
            - export BAR=bar
            - ./app1.sh
            - export FOO=foe
            - ./app2.sh
            - export FOO=fou
            - export BAR=baz
            - ./app1.sh && ./app2.sh

Let me know how it goes.

Regards,
Mark C

Deleted user Aug 23, 2021

That works great, thank you very much my pipeline just got way better readable.

0 votes
Michael Moriarty Marketplace Partner Aug 19, 2021

Not sure if this is helpful but we use AWS variables within our bitbucket pipelines like so:

 

script:

- echo "Building environment"

- cd ...

- pipe: atlassian/aws-elasticbeanstalk-deploy:0.2.3

variables:

AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID

AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY

AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION

Suggest an answer

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

Git push size limits are coming to Bitbucket Cloud starting April 4th, 2022

Beginning on April 4th, we will be implementing push limits. This means that your push cannot be completed if it is over 3.5 GB. If you do attempt to complete a push that is over 3.5 GB, it will fail...

2,170 views 2 9
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