Jenkinsのインストール
OS XにJenkinsをHomebrewでセットアップする
の記事を参考にインストールおよび起動コマンドのカスタマイズを行う。
Jenkinsプラグインのインストール
CloudBees Folders Plugin フォルダを作成し、ジョブを階層的に管理できるようになります
Git Plugin Gitを使用する為に必要です
Gitlab Hook Plugin Gitlab用にカスタマイズされており便利です
HockeyApp Plugin HockeyAppへのアップロードなどを簡単に行えるようになります
Xcode Plugin Xcodeでビルドするのに必要です
Build Pipeline Plugin ビルドパイプラインを作成できます
Unity3dBuilder Plugin Unityでのビルドを簡単に行えます
Unityのインストール
今回インストールするバージョンは5.0.2f1と5.1.0b6です。
Unity 5.0.2f1のインストール
- こちらよりダウンロードします。 ※パッチ適用版をダウンロードする場合はこちら
- ダウンロードしたdmgファイルを実行します。
- 画面に従いインストールします。
- アプリケーションフォルダ配下に「Unity」フォルダが作成されます。
- 「Unity」フォルダを「Unity5.0.2f1」にリネームします。
- 「Unity5.0.2f1」フォルダ内の「Unity」アプリケーションのエイリアスを作成し、デスクトップにコピーする。
- デスクトップにコピーしたエイリアスを「Unity5.0.2f1」にリネームします。
- デスクトップに配置したエイリアス「Unity5.0.2f1」を実行し、Unityが正常に起動するか確認。
Unity 5.1.0b6のインストール
- ベータ版はこちらよりダウンロードします。
- ダウンロードしたdmgファイルを実行します。
- 画面に従いインストールします。
- アプリケーションフォルダ配下の「Unity」フォルダを「Unity5.1.0b6」にリネームします。
- 「Unity5.1.0b6」フォルダ内の「Unity」アプリケーションのエイリアスを作成し、デスクトップにコピーする。
- デスクトップにコピーしたエイリアスを「Unity5.1.0b6」にリネームします。
- デスクトップに配置したエイリアス「Unity5.1.0b6」を実行し、Unityが正常に起動するか確認。
JDKのアップデート
Oracle Java SE Development KitのページよりJDKをダウンロードし、インストールする
Android SDKのインストール
Android DevelopersよりSDKをダウンロードする
Xcodeのインストール
AppStoreよりXcodeをインストールする
開発証明書およびプロビジョニングファイルのインストール
※このあたりの詳細は別途記事を書きます
まだ開発証明書を作成したことがない場合
- 新規に証明書をApple Developer Centerに登録する
- プロビジョニングファイルを作成し、開発マシンにインストールする
すでに別のマシンで開発証明書を作成している場合
- 開発証明書を作成したマシンでp12証明書ファイルを作成する
- 作成したp12ファイルを持ってきてインストールする
- プロビジョニングファイルをダウンロードし、開発マシンにインストールする
※プロビジョニングファイルがインストールされているかは下記のフォルダ配下のファイルを見ることで判断できます。
/Users/[ユーザ名]/Library/MobileDevice/Provisioning Profiles
プロビジョニングファイルの整理をしたい時は上記フォルダ内のファイルをすべて削除してから必要なプロビジョニングファイルを入れると良いです。
Gitlabの設定
秘密鍵/公開鍵の作成
/Users/[ユーザ名]/.ssh
にid_rsaおよびid_rsa.pubがない場合は下記のコマンドを実行します。
ssh-keygen -t rsa
公開鍵の登録
/Users/[ユーザ名]/.ssh/id_rsa.pub
の内容をプロジェクトの「Settings」-「Deploy Keys」に登録します。
ビルド用のワークスペースを作成する
私の場合はデスクトップにプロジェクト名のフォルダを作成し、下記のような構成にしています。
プロジェクト名が「sample」の場合
sample
└android → androidビルド用のワークスペース
└ios → iOSビルド用のワークスペース
└logs → ビルドログ格納用
Jenkinsにジョブを追加
フォルダの作成
ビルド用ジョブの作成
androidのビルド用ジョブ作成
Jenkinsで「新規ジョブ作成」もしくは「新しいジョブ」をクリックします。
ジョブ名に「android_build」、「フリースタイル・プロジェクトのビルド」にチェックを入れ「OK」ボタンを押します。
-
「ビルドのパラメータ化」にチェックを入れ、「パラメータの追加」より下記のように設定する。
- タイプ
- テキスト
- 名前
- branch_name
- デフォルト値
- develop
- 説明
- ビルドするブランチ名を指定します。
- タイプ
- テキスト
- 名前
- target_path
- デフォルト値
- 説明
- AssetsフォルダとProjectSettingsフォルダがトップディレクトリ以外に存在する場合に指定してください ※先頭は/から開始してください。
- タイプ
- テキスト
- 名前
- bundle_id
- デフォルト値
- [デフォルトのバンドルIDを指定]
- 説明
- バンドルIDを変更したい場合に指定してください
- タイプ
- テキスト
- 名前
- bundle_version
- デフォルト値
- 説明
- バンドルバージョンを変更したい場合に指定してください
- タイプ
- テキスト
- 名前
- bundle_version_code
- デフォルト値
- 説明
- バンドルバージョンコード(Android用)を変更したい場合に指定してください。
- タイプ
- テキスト
- 名前
- unity_version
- デフォルト値
- 4.6.3
- 説明
- ビルドするUnityのバージョンを変更したい場合に指定してください。
「プロジェクトの高度なオプション」の「高度な設定...」を押し、「カスタムワークスペースを使用」にチェックを入れ、「ディレクトリ」にワークスペースとするパスを記載する。
/Users/[ユーザ名]/Desktop/sample/android
「ソースコード管理」の「Git」にチェックを入れ、「Repositories」の「Repository URL」にはgitリポジトリのURLを入力します。
「Branches to build」の「Branch Specifier (blank for 'any')」には「$branch_name」を入力します。
「ビルド」の「ビルド手順の追加」より「シェルの実行」を選択し、下記の内容を記載します。
#!/bin/bash
echo "##################################"
echo "# Build Parameter #"
echo "##################################"
echo "branch_name : ${branch_name}"
echo "target_path : ${target_path}"
echo "bundle_id : ${bundle_id}"
echo "bundle_version : ${bundle_version}"
echo "bundle_version_code: ${bundle_version_code}"
echo "unity_version : ${unity_version}"
echo "##################################"
echo "# Build apk file. #"
echo "##################################"
8.「ビルド後の処理」より「Upload to HockeyApp」を選択し、下記のような設定をする。
「Release Notes」の箇所はバージョン管理のチェンジログから持ってくるのであれば「Use Change Log」を使用してください。
iOS用のビルド用ジョブ作成
XcodeProjectファイルの作成
1.Jenkinsで「新規ジョブ作成」もしくは「新しいジョブ」をクリックします。
2.ジョブ名に「ios_build_xcodeproject」、「フリースタイル・プロジェクトのビルド」にチェックを入れ「OK」ボタンを押す。
3.「ビルドのパラメータ化」にチェックを入れ、「パラメータの追加」より下記のように設定する。
- タイプ
- テキスト
- 名前
- branch_name
- デフォルト値
- develop
- 説明
- ビルドするブランチ名を指定します。
- タイプ
- テキスト
- 名前
- target_path
- デフォルト値
- 説明
- AssetsフォルダとProjectSettingsフォルダがトップディレクトリ以外に存在する場合に指定してください ※先頭は/から開始してください。
- タイプ
- テキスト
- 名前
- bundle_id
- デフォルト値
- [デフォルトのバンドルIDを指定]
- 説明
- バンドルIDを変更したい場合に指定してください
- タイプ
- テキスト
- 名前
- bundle_version
- デフォルト値
- 説明
- バンドルバージョンを変更したい場合に指定してください
- タイプ
- テキスト
- 名前
- unity_version
- デフォルト値
- 4.6.3
- 説明
- ビルドするUnityのバージョンを変更したい場合に指定してください。
4.「プロジェクトの高度なオプション」の「高度な設定...」を押し、「カスタムワークスペースを使用」にチェックを入れ、「ディレクトリ」にワークスペースとするパスを記載する。
/Users/[ユーザ名]/Desktop/sample/ios
5.「ソースコード管理」の「Git」にチェックを入れ、「Repositories」の「Repository URL」にはgitリポジトリのURLを入力します。
6.「Branches to build」の「Branch Specifier (blank for 'any')」には「$branch_name」を入力します。
7.「ビルド」の「ビルド手順の追加」より「シェルの実行」を選択し、下記の内容を記載します。
#!/bin/bash
echo "##################################"
echo "# Build Parameter #"
echo "##################################"
echo "branch_name : ${branch_name}"
echo "target_path : ${target_path}"
echo "bundle_id : ${bundle_id}"
echo "bundle_version : ${bundle_version}"
echo "unity_version : ${unity_version}"
echo "##################################"
echo "# Build xcodeproject file. #"
echo "##################################"
8.「ビルド後の処理」より「Trigger parameterized build on other projects」を選択し、下記のような設定をする。
- Projects to build
- ios_build_ipa
- Add Parameters
- Current build parameters
ipaファイルの作成
1.フリースタイルビルドの新規ジョブを作成し、ジョブ名を「ios_build_ipa」とする。
2.「プロジェクトの高度なオプション」の「高度な設定...」を押し、「カスタムワークスペースを使用」にチェックを入れ、「ディレクトリ」にワークスペースとするパスを記載する。
/Users/[ユーザ名]/Desktop/sample/ios
3.「ビルド」の「ビルド手順の追加」より「Xcode」を選択し、下記の通り設定する。
- Target
- Unity-iPhone
- Clean before build
- ☑️チェックを入れる
- Configuration
- Release
- Pack application and build ipa?
- ☑️チェックを入れる
- .ipa filename pattern
- 作成後のipaファイル名を指定(\${VERSION} と \${BUILD_DATE}を使用できます)
- Code Signing Identity
- 署名
- Unlock Keychain?
- ☑️チェックを入れる
- Keychain path
- $\{HOME}/Library/Keychains/login.keychain
- Keychain password
- キーチェーンにアクセスするためのパスワード
- Custom xcodebuild arguments
- CODE_SIGN_RESOURCE_RULES_PATH="$(SDKROOT)/ResourceRules.plist"
- Xcode Project Directory
- ${WORKSPACE}/ios
- Xcode Project File
- Unity-iPhone.xcodeproj
- Build output directory
- ${WORKSPACE}/ios/build
4.「ビルド後の処理」より「Upload to HockeyApp」を選択し、「androidのビルド用ジョブ作成」の8と同様の設定をする。
Jenkinsからビルドの実施
android_buildのジョブを選択し、左側の「パラメータ付きビルド」より各種パラメータを設定して「ビルド」を押すとandroidとiOSのビルドおよびアップロードが自動で行われるようになります。