MAGAZINE
ルーターマガジン
データベース
Bitbucket Pipelinesでデータベース(MySQL)に接続して自動テストをする最小限のサンプル
2025.07.11

Bitbucket Pipelinesでデータベースに接続して自動テストをしたい、という時にググって出てくるサンプルが、RailsなどのWebアプリケーションと密結合してたり、データベースへのログインパスワードの設定が別途必要だったりと、コレというサンプルが無かったので、作りました。
Bitbucket Pipelinesとは?
Bitbucket Pipelinesとは、Bitbucket上で利用できるCI/CDツールであり、ビルド/テスト/デプロイなどを自動実行できます。Bitbucketを既に利用しているユーザであれば、リポジトリ内に設定ファイルを1つ置くだけで簡単に利用することができます。
MySQLに接続して自動テストする最小限のサンプル
image: ubuntu
definitions:
services:
sample-database:
image: mysql
variables: # mysqlのdockerコンテナ起動時の環境変数の指定
MYSQL_ALLOW_EMPTY_PASSWORD: 1 # パスワード無しでrootにログイン可能にする
pipelines:
custom:
sample_test:
- step:
services:
- sample-database
script:
- apt update
- apt install -y mysql-client
- mysql --version
- sleep 3 # mysqlのサービス起動中の場合があるため、少し待つ。ここまでの処理に十分な時間経過がある場合は不要。
# https://ja.confluence.atlassian.com/bitbucket/use-services-and-databases-in-bitbucket-pipelines-874786688.html#:~:text=サービスの起動を待機するためのメカニズムは提供していません。
- mysql -h 127.0.0.1 -e 'select version();'
# Bitbucket Pipelinesでは UNIXドメインソケットでの接続( -h localhost )は出来ないことがあるので、127.0.0.1を明示的に指定
実行の仕方
初めてパイプラインを実行するリポジトリの場合
以下の手順で実行できます。
- 上記のbitbucket-pipelines.ymlをリポジトリ直下にpushする
- サイドメニューの「パイプライン」を開く
- 「Run initial pipeline」をクリックする
- 「Branch」と「Pipeline」を選んで、「Run」をクリック
以下、スクリーンショット付きの手順です。
①上記のbitbucket-pipelines.ymlをリポジトリ直下にpushする
②サイドメニューの「パイプライン」を開く
③「Run initial pipeline」をクリックする
④「Branch」と「Pipeline」を選んで、「Run」をクリック
2回目以降のパイプラインを実行する場合
2回目以降は、「パイプライン」画面の「Run pipeline」から実行できます。
実行結果
以下のように、無事mysqlサーバーに接続出来ていることが確認できます。
+ mysql --version
mysql Ver 8.0.42-0ubuntu0.24.04.1 for Linux on x86_64 ((Ubuntu))
+ mysql -h 127.0.0.1 -e 'select version();'
version()
9.3.0
まとめ
今回は、bitbucket-pipelinesでデータベースに接続して自動テストをするサンプルを紹介しました。これを基本の形として、mysqlやubuntuのdockerイメージを差し替えたり、実際にテストするアプリケーションを起動してみたり、mysqlコマンドで必要なデータベースを用意してみたり、など自由にいじることが出来ます。Bitbucketユーザーの皆様はぜひこれをご活用ください。
CONTACT
お問い合わせ・ご依頼はこちらから