読者です 読者をやめる 読者になる 読者になる

WonderPlanet DEVELOPER BLOG

ワンダープラネットの開発者ブログです。モバイルゲーム開発情報を発信。

GitHubとCircleCIの連携について

GitHub CI

サーバーエンジニアの若原です。

今回は開発でも使っているCircleCIのGitHub連携について紹介させていただきます。 CircleCIとは継続的インテグレーションのためのクラウドサービスです。 GitHubと連携することができ、git pushなどをトリガーにビルドを走らせることができます。

1コンテナまでは無料で使用することが可能ですが、複数のビルドを並列で行うためにはコンテナを増やす必要があり、2つ以上のコンテナを使用したい場合は有料となります。プロジェクトの規模を考えて適切な量のコンテナ数を追加する必要があります。

サインアップ

CircleCIへはGitHubのアカウントでサインアップすることができます。

f:id:wp-wakahara:20170110020126p:plain

プロジェクトの追加

サインアップ直後にダッシュボードに遷移します。プロジェクトが存在しないため赤枠内の「Add Projects」からGitHubのプロジェクトを追加します。

f:id:wp-wakahara:20170110020026p:plain

追加したいプロジェクトの「Build project」からプロジェクトを追加します。

f:id:wp-wakahara:20170110020120p:plain

CI設定

CIの実行内容を記載する「circle.yml」を、追加したプロジェクトのrootディレクトリに設置します。

circle.ymlの以下サンプルは以下のとおりです。

machine:
  timezone: # タイムゾーン
    Asia/Tokyo
  python:   # 言語のバージョン指定(ruby,phpなど)
    version: 3.4.2
  environment: # 環境変数
    TEST_ENV: test

dependencies:
  override:
    - 依存ライブラリのインストールコマンドなど

database:
  override:
    - DBやテーブルを作成したり、サンプルデータを作成するコマンドなど

test:
  override:
    - テストを実行するコマンド
    
deployment:
  deploy:
    branch: master
    commands:
      - デプロイを実行するコマンド

他にも様々なカスタマイズが可能です。詳しくは公式サンプル をご確認ください。

作成したcircle.ymlをリポジトリにpushすることで自動的にビルドが走ります。

また、CIが不要なドキュメントのみ修正などをpushする際には、コミットコメントに[ci skip]と含めることでCIをスキップすることができます。