25
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Unity #3Advent Calendar 2019

Day 15

GitLab-CIを使ってUnityプロジェクトに自動ビルド環境を構築しよう

Last updated at Posted at 2019-12-14

GitLabで自動ビルド環境を作りたい!

こう思った理由

ゲーム制作にはいろいろな人が参加します。
プログラマー・ゲームデザイナー・グラフィックデザイナー・サウンドクリエイター...
チームメンバー全員がUnityを扱えれば最高ですが、必ずしも全員がUnityを扱うスキルが必要でしょうか。
これは議論の余地がありますが、僕は「全員がUnityを扱えなくても良い」と考えます。
そのため、Unityを扱えずとも、進捗状況を確認できる環境の構築が必須になりました。

なぜ「全員がUnityを扱えなくても良い」と考えるか

  • デザイナー・サウンドクリエイター陣にUnityを教えるコストが高い。
  • 自動ビルド環境が整っていないと、Unityを使用しない人もUnityをインストールしなくてはならない。
  • 全員にGitの使い方を教えるのもコストが高い。
  • 現在の進捗状況を確認する方法が別にあれば、全員がUnityを使わなくても良くなる。

準備項目

  • GitLabアカウントを作成する
  • 自身のローカル環境にあるUnityプロジェクトをGit管理下に置く
  • GitLabで公開されている「unity3d-gitlab-ci-example」をローカルにcloneする
  • Unityプロジェクトの中に「.gitlab-ci.yml」ファイルをコピーして、不要な項目を削除する
  • Unityプロジェクトの中に「ci」フォルダをコピーする
  • 「Assets/Scripts/Editor」フォルダを自身のUnityプロジェクトの同じ階層にコピーする
  • GitLabの「Setting」欄の「CI/CD」メニューの中の「Variables」の「Key」欄に「UNITY_USERNAME」と「UNITY_PASSWORD」を追加し、「Value」欄にそれに対応した値を追加する
  • GitLabにUnityプロジェクトをpushする
  • 生成されたArtifactsをダウンロードし、その中の「Unity3d.alf」ファイルをUnity公式サイトのライセンス確認ページへアップロードし、「Unity_v2019.x.ulf」ファイルをダウンロードする
  • GitlabのSettings→CI/CD→Variablesに「UNITY_LICENSE_CONTENT」を追加し、Unity_v2019.x.ulfの中身をコピーする

以上の作業を行います。画像を使って解説します。

GitLabアカウントの作成

キャプチャ.PNG
GitLab.comのSign upページに行き、アカウントを作成します。
GitLab.com

自身のローカル環境にあるUnityプロジェクトをGit管理下に置く

Gitの使い方は僕なんかよりよっぽど詳しい人達がいるので、その人達を参考にしてください。

GitLabで公開されている「unity3d-gitlab-ci-example」をローカルにcloneする

キャプチャ1.PNG
unity3d-gitlab-ci-exampleのclone httpをコピーし、cloneコマンドでローカルに落とします。

Unityプロジェクトの中に「.gitlab-ci.yml」ファイルをコピーして、不要な項目を削除する

キャプチャ2.PNG
「unity3d-gitlab-ci-example」の中の「.gitlab-ci.yml」ファイルをコピーして、Unityプロジェクトの直下にペーストします。
「.gitlab-ci.yml」の中の「Build」項目内のビルドするファイルの種類は、必要なものを残して、あとは削除しても問題ありません。
ついでに、「Build」項目内でWebGLでのビルドを記入しない場合は、最後の「Pages」の項目も必要ありません。

Unityプロジェクトの中に「ci」フォルダをコピーする

「unity3d-gitlab-ci-example」内の「ci」フォルダはそのまま、Unityプロジェクトの直下にコピーします。

「Assets/Scripts/Editor」フォルダを自身のUnityプロジェクトの同じ階層にコピーする

「unity3d-gitlab-ci-example」内の「Scripts/Editor」フォルダは、Unityプロジェクトの「Assets」フォルダー内にコピーすれば問題ないと思われます。「unity3d-gitlab-ci-example」の構成と同じにしてください。

GitLabの「Setting」欄の「CI/CD」メニューの中の「Variables」の「Key」欄に「UNITY_USERNAME」と「UNITY_PASSWORD」を追加し、「Value」欄にそれに対応した値を追加する

キャプチャ3.PNG
黄色くマーカーしたところです。ここには、いつも使用している自分のユーザーネーム(メールアドレス)とパスワードを「Value」に入れています。一番上の「UNITY_LICENSE_CONTENT」はまだ入力する必要がありません。

GitLabにUnityプロジェクトをpushする

これでようやくプッシュまでの準備は完了です。一回目のプッシュが終わったあとも、もう少し作業が残っています。もう少しの辛抱です。

生成されたArtifactsをダウンロードし、その中の「Unity3d.alf」ファイルをUnity公式サイトのライセンス確認ページへアップロードし、「Unity_v2019.x.ulf」ファイルをダウンロードする

キャプチャ4.PNG
「Job」の中の「get-activation-file」を走らせて、この画面が出たら成功です。「Artifacts」をダウンロードし、「Unity3d.alf」ファイルを取得したら、Unity公式サイトのライセンス確認ページで「Unity3d.alf」ファイルをアップロードします。
Unityライセンス確認ページ

GitlabのSettings→CI/CD→Variablesに「UNITY_LICENSE_CONTENT」を追加し、Unity_v2019.x.ulfの中身をコピーする

キャプチャ5.PNG
黄色くマーカーした場所です。Valueの値は、テキストエディタで「Unity_v2019.x.ulf」を開いて見ることができる文章です。まるっとコピーして、Valueの中に入れます。

これでGitLab-CIで自動ビルドができるようになると思います。以降は、Pushするたびに自動で最新の進捗を実行ファイルにしてくれます。

Unity内でエラーが出る場合

「Assets/Scrpts/Editor」にコピーしたファイルがUnityでエラーを出している場合があります。その時は、エラーを吐いている行をコメントアウトすれば大丈夫です。

さいごに

Unityアドベントカレンダーパート3の15日目の記事はこんな感じです。「Unityが使えないメンバーにも今の開発状況を遊ばせたいなぁ...」という方々への参考になれば幸いです。閲覧いただきありがとうございました。

25
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?