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