4

I'm using bitbucket pipelines and I need to store the .env file (for example) as a variable so that I can use it in my deployment. When I stored it as a plain text variable it echoed as a single line text and the app couldn't use it.

Hesham Abboud
  • 45
  • 1
  • 1
  • 7

1 Answers1

3

If your file contains linebreaks, they will be mangled by the input field in the pipeline variables page.

A solution is to encode the file content with base64 and decode the variable when writing it back to a file.

base64 < .env
pipelines:
  default:
    - step:
        script: 
          - echo $MYVAR | base64 --decode > .env

Beware that if your file contains secrets and mark the base64-encoded variable as secret, you will loose a security feature that prevents accidental prints of its value in the pipeline logs. See Bitbucket: Show value of variables marked as secret

N1ngu
  • 2,862
  • 17
  • 35