在Bitbucket管道的各个步骤中使变量可见?

Make variable visible across steps in Bitbucket pipelines?

我想分两个步骤来共享一个变量。

我把它定义为:

1
- export MY_VAR="FOO-$BITBUCKET_BUILD_NUMBER"

但是当我尝试在其他步骤中打印时:

1
- echo $MY_VAR

它是空的。

我如何分享这样的变量?


您可以将所有环境变量复制到文件中,然后将其读回:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
- step1:
  # Export some variables
  - export MY_VAR1="FOO1-$BITBUCKET_BUILD_NUMBER"
  - export MY_VAR2="FOO2-$BITBUCKET_BUILD_NUMBER"
  - echo $MY_VAR1
  - echo $MY_VAR2

  # Copy all the environment variables to a file, as KEY=VALUE, to share to other steps
  - printenv > ENVIRONMENT_VARIABLES.txt

- step2:
  # Read all the previous environment variables from the file, and export them again
  - export $(cat ENVIRONMENT_VARIABLES.txt | xargs)
  - echo $MY_VAR1
  - echo $MY_VAR2

注意:尽量避免使用包含空格或换行符的字符串(对于环境变量值)。 如果不转义它们,export命令将无法读取它。

更多信息:

  • https://www.cyberciti.biz/faq/linux-list-all-environment-variables-env-command/ - for printenv命令
  • 从键/值对文件中设置环境变量


我很害怕,但似乎不可能从一个步骤到另一个步骤共享环境变量,但是您可以为pipelines类别下项目设置中的所有步骤定义全局环境变量。

1
Settings -> Pipelines -> Repository Variables