GitHubにpushしたらCircleCIでビルドが実行されるようにしたい

やりたいこと

  • ビルドの実行
  • テストの実行
  • レポートの作成
  • バッジの表示

CircleCIの設定

CircleCIのプロジェクトをセットアップする

https://circleci.com/にアクセスし、GitHubアカウントでサインアップする。

自分の所有しているレポジトリが表示されるので、CircleCIと連携したいレポジトリのSet Up Projectをクリックする。

今回はconfigファイルの作成から行うのでFastを選択する。

ここは自身のプロジェクトで使用しているビルドツールを選択する。Java(Maven)を選択した。

Sampleのconfigファイルが作成される。とりあえず試したかったので、何も変更せずCommit and Runをクリックした。

該当のプロジェクトにcircleci-project-setupブランチが作成された後、ビルドが実行される。このsampleではビルドからテストまで実行される。

プログラムが使用しているデータベースの設定を行っていないため、当然テストは失敗となった。

プロジェクトに合わせてconfigファイルを変更する

自分の実行環境に合わせて以下の通りconfigファイルを変更した。

  • MariaDBをインストール
  • テスト用のスキーマ、データをインポート
# Use the latest 2.1 version of CircleCI pipeline process engine.
# See: https://circleci.com/docs/2.0/configuration-reference
version: 2.1

# Define a job to be invoked later in a workflow.
# See: https://circleci.com/docs/2.0/configuration-reference/#jobs
jobs:
  build-and-test:
    docker:
      - image: cimg/openjdk:11.0
      - image: cimg/mariadb:10.8
        environment:
          MARIADB_DATABASE: common
          MARIADB_USER: common
          MARIADB_PASSWORD: common_pw
    # Add steps to the job
    # See: https://circleci.com/docs/2.0/configuration-reference/#steps
    steps:
      # Checkout the code as the first step.
      - checkout
      # Use mvn clean and package as the standard maven build phase
      - run:
          name: Build
          command: mvn -B -DskipTests clean package
      # Wait for MariaDB to be ready.
      - run:
          name: Waiting DB setup
          command: |
            for i in `seq 1 10`;
            do
              nc -z 127.0.0.1 3306 && echo Success && exit 0
              echo -n .
              sleep 1
            done
            echo Failed waiting for MySQL && exit 1
      # Installation of MySQL CLI. And import test data.
      - run:
          name: Import tast data
          command: |
            sudo apt update
            sudo apt install mysql-client
            mysql -h 127.0.0.1 -u common -pcommon_pw common < src/config/schema.sql
            mysql -h 127.0.0.1 -u common -pcommon_pw common < src/config/data.sql
      # Then run tests!
      - run:
          name: Test
          command: mvn test

# Invoke jobs via workflows
# See: https://circleci.com/docs/2.0/configuration-reference/#workflows
workflows:
  build-deploy:
    jobs:
      - build-and-test

これでビルドとテストは成功となった。

Junitのテスト結果、レポートの表示

こちら(CircleCIのビルド後テスト結果が表示されるようにしたい)の記事を参照のこと。

バッジの表示

Project SettingのStatus Badgesを参照する。埋め込み用コードが表示されるので、それをコピーして貼り付ける。

なぜか、URLの一部がnullになっていて、正常に画像が表示されなかったので、以下の通り修正した。

[![CircleCI](https://circleci.com/gh/hide6644/common/tree/circleci-project-setup.svg?style=svg)](https://circleci.com/gh/hide6644/common/tree/circleci-project-setup)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください