MAGAZINE

ルーターマガジン

データベース

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

2025.07.11
Pocket

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を明示的に指定

実行の仕方

初めてパイプラインを実行するリポジトリの場合

以下の手順で実行できます。

  1. 上記のbitbucket-pipelines.ymlをリポジトリ直下にpushする
  2. サイドメニューの「パイプライン」を開く
  3. 「Run initial pipeline」をクリックする
  4. 「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ユーザーの皆様はぜひこれをご活用ください。

Pocket

CONTACT

お問い合わせ・ご依頼はこちらから