web-dev-qa-db-ja.com

Bitbucketパイプラインのステップ全体で変数を可視化しますか?

2つのステップで変数を共有したいと思います。

私はそれを次のように定義します:

- export MY_VAR="FOO-$BITBUCKET_BUILD_NUMBER"

しかし、他のステップでそれを印刷しようとすると:

- echo $MY_VAR

空っぽです。

そのような変数をどのように共有できますか?

12
pixel

申し訳ありませんが、ステップ間で環境変数を共有することは不可能のようですが、pipelinesカテゴリの下のプロジェクトの設定で、すべてのステップのグローバル環境変数を定義できます。

Settings -> Pipelines -> Repository Variables
8
Jack Klimov

すべての環境変数をファイルにコピーしてから、それらを読み込むことができます。

- 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コマンドはそれらを読み取ることができず、エラーをスローする可能性があります。 1つの可能な回避策は スペースを含む行を自動的に削除するにはsedを使用 です。

# Copy all the environment variables to a file, as KEY=VALUE, to share to other steps
- printenv > ENVIRONMENT_VARIABLES.txt
# Remove lines that contain spaces, to avoid errors on re-import (then delete the temporary file)
- sed -i -e '/ /d' ENVIRONMENT_VARIABLES.txt ; find . -name "ENVIRONMENT_VARIABLES.txt-e" -type f -print0 | xargs -0 rm -f

より詳しい情報:

9
Mr-IDE