ゲームを作る環境を整えるツール その1

ディレクタ、プランナ、プログラマ、アート、モデラ、アニメータ、サウンドエンジニア…
様々なスキルを持った人々の力を集める事でゲームは形になっていきます。
今回はゲームを作るツールでは無く、ゲームを作る環境を整えるツールをご紹介します。

頼れる執事 Jenkins

Jenkinsという継続的インテグレーションツールをご存知でしょうか?
その名の通り「決められた条件になったら、決められた手順を実行する」ツールです。
この単純な事を継続して実行するツールがとても便利なのです。

決められた条件が一致したら、決められた手続きを実行する事をJenkinsではジョブと呼びます。

例えば、

  • 条件を、毎時0分に。
  • 手続きを、チャットへつぶやく。

とすると、簡単に時報サービスを作る事ができます。これを実際に20時から時報をチーム全体へ流すようにしたところ、終了時間を意識できて良いと好評を得ているようです。

このようにJenkins × チャットツールのようにツールを掛け合わせる事で、Jenkinsは強力に開発者を助けてくれます。

大量の組み合わせ = できる事も大量

連携を組み合わせる事で、非常に強力なサービスを作れます。しかもプラグインで簡単に。
私がよく作るジョブの例を上げますと…

  • チケットを調べ、タスクやバグの統計を可視化するジョブ。
  • 放置チケットの催促メールを出すジョブ。
  • SubversionやGitが更新された時、データやプログラムを変換して自動的にROMイメージを作成するジョブ。
  • 作成されたROMをテストして結果を記録するジョブ。

などのジョブを作りましたが、どれも一日かからず作る事が出来ます。
しかもとても便利!
「作成されたROMをテストして結果を記録するジョブ」このジョブひとつ取り上げても、

ゲームの変更がある度に、すべてのマップにジャンプしてROMが動作するか確認する

こんな作業を毎時間人間が作業するには辛いですよね。

最近見つけたおすすめプラグイン!

Jenkinsのプラグインは世界の1000以上のコミュニティが開発しており https://plugins.jenkins.io から自由に探す事ができます。

今回はgitlabのマージリクエストを検出して、マージテストを行いgitlabに結果を書き戻すプラグイン Gitlab Merge Request Builder Plugin をご紹介します。

https://plugins.jenkins.io/gitlab-merge-request-jenkins

Gitlab Merge Request Builder Plugin

インストール環境

  • Jenkins ver 2.102
  • Git client plugin ver 2.7.0
  • Git plugin ver 3.7.0
  • Gitlab Merge Request Builder ver 2.0.0

gitlabにjenkinsユーザーを追加

  • JenkinsユーザがGitlab内に存在し、リポジトリにアクセスできることを確認します。
  • 今回は自動マージ機能を利用していません

Jenkinsへプラグインをインストールする

  • Jenkins > プラグインマネージャー > 利用可能 を開く
  • 「Gitlab Merge Request Builder」を検索
  • チェックボックスを有効にして、再起動後にインストール

共通設定

  • Jenkins > 設定 を開き、Gitlab Merge Request Builderの項目を探す
  • Gitlab Host URL に あなたのGitlabサーバーのURLを入力
  • Jenkins Username に Jenkinsが使うユーザー名を入力
  • Jenkins API Token に Gitlabで作成したAPI Tokenを入力(トークンはシステム管理者に発行を依頼して下さい)
  • 保存を押す

  • Jenkins > グローバルセキュリティの設定 を開く
  • マークアップ記法を Safe HTML へ変更する

JenkinsのJobを作成する

  • 新規ジョブ作成 を開く
  • プロジェクト名を入力
  • どの様なプロジェクトでも構いませんが、ここでは フリースタイル を選択
  • OKをクリック

Job Notifications

  • ビルドのパラメータ化をチェック
  • パラメータの追加 から テキストを選択
  • gitlabSourceBranch と gitlabTargetBranch の二つを追加する

Jenkins ver 2以降では利用する環境変数をパラメータとして設定しないと参照できないので注意

ソースコード管理

  • Gitを選択して、リポジトリURLにGitlabのプロジェクトURLを入力
  • 必要に応じて認証情報を設定
  • ビルドするブランチに refs/remotes/origin/${gitlabSourceBranch} またはマージ元 ${gitlabSourceName}/${gitlabSourceBranch} を入力

追加処理

  • 追加処理内の追加ボタンを押してMerge before buildを選択
  • マージ先のブランチに ${gitlabTargetBranch} を入力

サブモジュールがある場合はここで追加する

ビルド・トリガ

  • Gitlab Merge Requests Builder をチェック
  • Gitlab Project Path に、あなたのGitlabプロジェクトパスを入力。例えば私のプロジェクトが http://gitlab/moriya/test だった場合、 moriya/testを入力します。
  • Target Branch Regexに対象のブランチ名を入力。全てを対象にする場合は未入力で良い。
  • 特定の担当者のみテストする場合は、Assignee filterに担当者を入力します。

その他の設定

ビルドの方法はここでは省略します。

はじめてみよう!

Gitlab Merge Requests Builderは複雑な設定が必要なプラグインでしたが、あまり情報を得られなかったのでご紹介しました。

Jenkinsが初めてという方は、まずはJenkinsにプログラムをビルドさせてみる所から始めてみて下さい。コマンドラインでビルドする環境を用意できれば、Jenkinsにビルドさせるのも難しくないでしょう。

携わる人数が増える度にJenkinsの良さを実感できると思います。次回はRedmineを紹介。