エンジニアの皆さん、こんにちは。
CI/CDパイプラインを組んでいると、必ず一度は経験する「絶望」がありますよね。
クラウド上で実行した途端に失敗するビルド。修正してはコミット、プッシュ、待機……。この「コミット&プッシュ地獄」で貴重な数時間を溶かした経験は、誰もが一度は通る洗練のための試練です。
しかし、今日でその苦行とはおさらばしましょう。「Bitbucket Pipelinesのローカル実行」という最強の武器を手に入れるのです。
今回は、Bitbucketの公式ツールである `bitbucket-pipelines-runner` を使い、ローカル環境でクラウドと完全に同一のパイプラインを再現する、プロのワークフローを伝授します。
—
1. なぜ「ローカル実行」が聖域なのか?
クラウド上のCI環境はクリーンですが、デバッグには不向きです。
一方、ローカルでパイプラインを再現できれば、以下のメリットが手に入ります。
- 爆速デバッグ: 数分かかるプッシュ待機が、ローカルなら「即座」に終わります。
- 環境の完全一致: コンテナ技術(Docker)を使うため、「自分のPCでは動くのに…」という事故を防げます。
- コストと精神衛生の改善: 無駄なコミット履歴を汚さず、心穏やかに開発に集中できます。
—
2. セットアップ:戦場への準備
まずは環境を整えましょう。必要なのは、DockerとNode.js環境だけです。
手順1: Dockerの起動
Docker Desktopなどがローカルで稼働していることを確認してください。RunnerはDockerコンテナを立ち上げて実行するため、これが心臓部になります。
手順2: CLIツールのインストール
Node.js環境で、グローバルに `bitbucket-pipelines-runner` をインストールします。
npmを使ってインストール
npm install -g bitbucket-pipelines-runner
インストールが終わったら、`bb-pipelines –version` でコマンドが通ることを確認しましょう。
—
3. HelloWorld的な動作確認:最初のステップ
まずは、既存の `bitbucket-pipelines.yml` を使って、一番単純なジョブをローカルで走らせてみます。
設定ファイル(bitbucket-pipelines.yml)の例
image: atlassian/default-image:latest
pipelines:
default:
- step:
name: Build and Test
script:
- echo “Hello, Bitbucket Runner!”
- node -v # Nodeのバージョン確認
実行コマンド
プロジェクトのルートディレクトリで、以下のコマンドを叩いてください。
–step で特定のステップを指定して実行
bb-pipelines –step “Build and Test”
ここで起きること:
1. Dockerが `atlassian/default-image` をプルしてくる。
2. ローカルコンテナが立ち上がり、スクリプトが順次実行される。
3. クラウドと全く同じ結果がターミナルに出力される。
成功すれば、ターミナルに `Hello, Bitbucket Runner!` と表示されるはずです。これが「クラウドをローカルに召喚した瞬間」です。
—
4. プロの現場で使うための「極限ハック」
単に動かすだけなら入門書通りですが、現場で生き残るためには以下のテクニックが不可欠です。
① 環境変数の注入
`bitbucket-pipelines.yml` で参照している環境変数は、ローカルではどうするか?
`–env` オプションを使って、一時的に注入可能です。
本番用のシークレットをローカルで模倣
bb-pipelines –step “Build and Test” –env MY_API_KEY=12345
② 失敗したステップでコンテナを止めない(デバッグのコツ)
通常、CIは失敗するとコンテナを破棄しますが、ローカルデバッグでは「中身を見て修正したい」ですよね。
エラーが発生した際にコンテナを残すための設定や、シェルに入って直接叩く工夫をすると、解決速度が10倍になります。
—
5. 先輩エンジニアからのアドバイス
「ツールを入れただけで満足しないこと」が大切です。
この `bitbucket-pipelines-runner` を使いこなす最大のコツは、「CI設定を書く前に、まずローカルで通す」という習慣を身につけることです。
1. `bitbucket-pipelines.yml` を書く。
2. ローカルで `bb-pipelines` を実行。
3. エラーが出たらローカルで修正。
4. すべてパスしてから初めてコミットする。
このサイクルを回せるようになると、あなたのコミット履歴は常にクリーンになり、チームからの信頼も厚くなります。「あの人が触るとビルドが落ちない」と言われるエンジニアになりましょう。
—
まとめ:あなたの開発体験を変える
今回はBitbucket Pipelinesのローカル実行について解説しました。
最初は少し手間に感じるかもしれませんが、この小さな「一手間」が、将来的に失うはずだった数日間のデバッグ時間を救ってくれます。
まずは手元のプロジェクトで、一度 `bb-pipelines` を叩いてみてください。
「あ、ここが原因だったのか!」という気づきが、あなたの画面にも訪れるはずです。
何か詰まったら、いつでも聞いてください。応援していますよ!