Lesstep
Bitbucket Cloud・Pipelines・2026年11月2日に確認

Bitbucket Pipelines:変数が空になる

Pipelines の変数にはいくつかの種類があり、それぞれ届くところが決まっています。ステップで変数を表示しても何も出ない、あるいはコマンドが変数の無いときのように動く場合は、たいてい次のどれかです。

デプロイ変数を、そのデプロイのステップの外で使っている

デプロイ変数は環境ごとの変数です。Repository settings の Deployments で環境を選んで設定し、同じ名前のリポジトリ変数やワークスペース変数より優先されます(Atlassian の デプロイを設定、監視する)。ステップがそれを受け取るのは、deployment にその環境の名前を書いたときです。

pipelines:
  branches:
    main:
      - step:
          deployment: production
          script:
            - echo "API URL: $API_URL"   # production の値

deployment の無いステップや、別の環境を書いたステップには、production の値は来ません。名前がぶつかったときの順番は、Atlassian の変数とシークレットによると、パイプライン、デプロイ、リポジトリ、ワークスペースの順です。

保護された変数は、空ではなく隠れている

保護された変数(鍵のしるし)はログで伏せられ、その値と同じ文字列の出力も伏せられます。Atlassian の例では、echo "Deploying with key $API_KEY" はログに鍵ではなく $API_KEY と出ます。値が届いたかどうかを、値を出さずに確かめるには、長さを表示します。

- echo "API_KEY has ${#API_KEY} characters"

保護された変数は編集できず、置き換えるか消すかだけです。

前のステップで export した変数

ステップは毎回新しいコンテナで動くので、export の効き目はそのステップで終わります。次へ渡すには、Atlassian の Variable sharing(英語)の形を使います。$BITBUCKET_PIPELINES_VARIABLES_PATH のファイルに KEY=VALUE を書き、その名前を output-variables に並べます。

- step:
    name: Generate version
    script:
      - export VERSION=$(date +%Y%m%d)-$BITBUCKET_BUILD_NUMBER
      - echo "VERSION=$VERSION" >> $BITBUCKET_PIPELINES_VARIABLES_PATH
    output-variables:
      - VERSION
- step:
    name: Deploy
    script:
      - echo "Deploying $VERSION"

ファイルをステップの間で渡すのはアーティファクトです。

スクリプトの外の $VAR

$VAR を埋めるのは、スクリプトの行が動くときのシェルです。image・ステップの name・deployment・キャッシュのパスのような、ほかの欄では ${{VAR}} を使います。Atlassian が2025年5月に足した書き方で(発表、英語)、YAML templating(英語)によると、パイプラインを読み込むとき、どのステップも動く前に埋まります。

image: ${{NODE_IMAGE}}     # リポジトリ変数。たとえば node:20

例外はビルド用イメージの認証です。Atlassian の例は、image の下に username: $DOCKER_HUB_USERNAME と password: $DOCKER_HUB_PASSWORD と書いています。

名前と、一部のビルドにしか無い既定の変数

IntelliJ IDEA で Bitbucket Pipelines を見る

Pipeline Inbox for Bitbucket Pipelines は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。Bitbucket Cloud の全部のリポジトリのパイプラインを IDE のツールウィンドウに並べ、ステップ、失敗したステップと止まったコマンド、Bitbucket が書くそばから伸びるステップのログを見せます。一覧・ステップ・ログは無料。パイプラインの実行・やり直し・停止は Pro(月 US$1.50・30日の無料試用つき)。カスタムのパイプラインを実行するときは、宣言している変数ごとに入力欄が出ます。

JetBrains Marketplace で入れる

Atlassian・Bitbucket・Bitbucket Pipelines は Atlassian の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは Atlassian・JetBrains のいずれとも提携しておらず、承認も受けていません。

ほかに:「Host key verification failed」(SSH) · 「Cannot connect to the Docker daemon」 · 「authorization denied by plugin pipelines」(Docker) · 「Container 'docker' exceeded memory limit.」 · push したのに Pipelines が動かない · 「Container 'Build' exceeded memory limit.」 · 「Exceeded build time limit of 120 minutes」 · キャッシュが効かない · 「unexpected system error」 · 「command not found」 · サブモジュールを取ってこない · 「We couldn't clone the repository」 · 「No online runner available」 · 「No space left on device」 · 「Step exceeded processing limits」 · 次のステップにアーティファクトが無い · 前は通ったビルドが今は落ちる · Build setup に時間がかかる · ビルド時間を使い切った · 「Permission denied to update branch」 · 「You have reached your pull rate limit」(Docker Hub) · 「There is an error in your bitbucket-pipelines.yml」 · 「This pipeline was paused」(デプロイ) · テストの結果が出ない · IntelliJ IDEA の Bitbucket Pipelines 用プラグインの比較 · English