【入門編】Bitbucket Pipelinesにおける「Bitbucket Pipes」活用術:公開済みパイプを再利用してCI/CD設定をコードレス化する – バージョン管理・CI/CD活用バイブル

こんにちは。現場で泥臭いパイプラインと格闘し続けてきた先輩エンジニアです。

CI/CDの設定ファイル(`bitbucket-pipelines.yml`)を眺めていて、「また同じようなDockerビルドやデプロイのスクリプトをコピペしているな…」と感じたことはありませんか?

その感覚、正解です。DRY(Don’t Repeat Yourself)の原則は、コードだけでなくCI/CDのパイプラインにも適用されるべきです。

今回は、Bitbucket Pipelinesの真骨頂である「Bitbucket Pipes」を使って、設定を劇的にスリム化し、保守性を極限まで高める方法を伝授します。これをマスターすれば、あなたのパイプラインは「スクリプトの塊」から「洗練された自動化ツール」へと進化します。

—

1. Bitbucket Pipesとは何か?:車輪の再発明を避ける鍵

Bitbucket Pipesは、一言で言えば「パイプラインのためのプラグイン」です。

通常、CI/CDでAWSにデプロイしたり、Slackに通知したりする場合、自前でシェルスクリプトを書く必要がありますよね。しかし、環境変数の管理や認証処理など、地味でエラーが起きやすい処理を毎回自分で書くのは時間の無駄です。

Pipesを使えば、これらの複雑な処理が「関数を呼び出すだけ」のシンプルな設定に置き換わります。

  • 保守性の向上: 共通処理を一箇所で管理できる。
  • コードレス化: 数十行のシェルスクリプトが、数行のYAML記述に圧縮される。
  • 信頼性: 公式やコミュニティが検証済みのコードを使うため、自前スクリプトより遥かに堅牢。

—

2. まずは使ってみよう:公式Pipesの導入

まずは「HelloWorld」の代わりとして、最もよく使う「AWS S3へのファイルアップロード」を例に見てみましょう。

`bitbucket-pipelines.yml` を以下のように書くだけで完了です。

pipelines:
default:

  • step:

name: Deploy to S3
image: atlassian/default-image:latest
script:
# 公式のS3パイプを呼び出す。これだけで認証と転送が完了する

  • pipe: atlassian/aws-s3-deploy:1.1.0

variables:
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION: ‘ap-northeast-1’
S3_BUCKET: ‘my-production-bucket’
LOCAL_PATH: ‘dist’ # ビルド成果物があるディレクトリ

ここがポイント:
`pipe:` と書くだけで、裏側ではAtlassianやAWSが管理するDockerコンテナが立ち上がり、必要なツールがインストールされた状態で処理が実行されます。自前で `aws-cli` をインストールする手間は一切ありません。

  • Pipesの探し方: [Bitbucket Pipe Marketplace](https://bitbucket.org/product/features/pipelines/integrations) を覗いてみてください。Slack通知、GCPデプロイ、脆弱性スキャンなど、山のような武器が揃っています。

—

3. 【上級編】カスタムPipeで「社内標準」をテンプレート化する

ここからが伝説のエンジニアへの第一歩です。プロジェクトが増えてくると、「全プロジェクトで共通の社内セキュリティチェックを通したい」といったニーズが出てきます。

そんな時は、自分たち専用のカスタムPipeを作りましょう。

ステップ1:カスタムPipe用リポジトリを作成

適当な名前のリポジトリ(例: `my-company-pipes`)を作成し、`pipe.yml` という設定ファイルと、実行用のスクリプト(`pipe.sh`)を用意します。

pipe.yml:

name: my-security-check
description: 社内基準のセキュリティチェックを実行する
runs:
using: bash
main: pipe.sh

pipe.sh:

!/bin/bash
共通の脆弱性スキャンツールを実行するスクリプト
echo “— 社内セキュリティスキャンを開始します —”
ここに共通のロジックを書く
./scan-tool –target ./ –level high

ステップ2:パイプラインで呼び出す

あとは、他のリポジトリからこのPipeを呼び出すだけです。

  • pipe: bitbucket.org/your-workspace/my-company-pipes:main

これで、会社全体のセキュリティ基準をアップデートしたい場合、このPipeリポジトリを修正するだけで全プロジェクトに反映されます。これが「コードレス化」の本当の強みです。

—

最後に:自動化の先にあるもの

Pipesを活用する最大のメリットは、「人間が考えるべき場所」を確保できることです。

パイプラインのスクリプトを一行ずつ追いかけることに頭を使わないでください。Pipesで抽象化し、あなたは「どうデプロイするか」ではなく「何をデプロイして、ユーザーにどんな価値を届けるか」に集中すべきです。

今日から、`bitbucket-pipelines.yml` の中に複雑なシェルスクリプトが見えたら、それは「Pipeにするチャンス」だと思ってください。

あなたの開発体験が、今日から少しだけ、でも確実に楽になることを願っています。何か詰まったら、いつでもまた聞きに来てくださいね!

タイトルとURLをコピーしました