概要
Jenkinsを使って、AndroidアプリのビルドからHockeyAppへのアップロードを自動化する。
ジョブはスレーブのMacに実行させる。
Gitのリポジトリを監視し、変更があればビルドして、HockeyAppへアップロードする。
今回は Cocos2d-x の Android アプリをビルドする。
環境
- master
- CentOS 6.6 (Final)
- Jenkins 1.580.1
- slave
- OS X Yosemite 10.10.1
- Androidアプリをビルドできる環境
前提
ジョブを作成する
ビルド手順以外は、iOSアプリのビルドと同じなので [ビルド手順の追加] から。
ビルド手順を追加する
環境のクリア
git fetch -p --all
git clean -f -d
rm -rf "${WORKSPACE}/bin/"
rm -rf "${WORKSPACE}/cocos2d/cocos/platform/android/java/bin/"
rm -rf "${WORKSPACE}/cocos2d/cocos/platform/android/java/gen/"
rm -rf "${WORKSPACE}/cocos2d/cocos/platform/android/java/libs/"
rm -rf "${WORKSPACE}/cocos2d/cocos/platform/android/java/local.properties"
rm -rf "${WORKSPACE}/cocos2d/cocos/platform/android/java/res/"
rm -rf "${WORKSPACE}/proj.android/assets/"
rm -rf "${WORKSPACE}/proj.android/bin/"
rm -rf "${WORKSPACE}/proj.android/gen/"
rm -rf "${WORKSPACE}/proj.android/libs/armeabi-v7a/"
rm -rf "${WORKSPACE}/proj.android/local.properties"
rm -rf "${WORKSPACE}/proj.android/obj/"
ビルドナンバーの変更
sed \
-i \
-e "s/android:versionCode=\"1\"/android:versionCode=\"$BUILD_NUMBER\"/g" \
"${WORKSPACE}/proj.android/AndroidManifest.xml"
ビルド
# Add environment variable COCOS_CONSOLE_ROOT for cocos2d-x
export COCOS_CONSOLE_ROOT=/Applications/Cocos2d-x/v3.3-rc0/tools/cocos2d-console/bin
export PATH=$COCOS_CONSOLE_ROOT:$PATH
# Add environment variable NDK_ROOT for cocos2d-x
export NDK_ROOT=/Applications/Android-NDK
export PATH=$NDK_ROOT:$PATH
# Add environment variable ANDROID_SDK_ROOT for cocos2d-x
export ANDROID_SDK_ROOT=/Applications/Android-SDK
export PATH=$ANDROID_SDK_ROOT:$PATH
export PATH=$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools:$PATH
# Add environment variable ANT_ROOT for cocos2d-x
export ANT_ROOT=/usr/local/bin
export PATH=$ANT_ROOT:$PATH
cocos compile -p android -m release
シンボルファイルの作成
./Scripts/pack_symbols_android.sh release
HockeyAppにアップロード
curl \
-F "status=2" \
-F "notify=0" \
-F "notes=Some new features and fixed bugs." \
-F "notes_type=0" \
-F "ipa=@bin/release/android/置き換える.apk" \
-F "dsym=@bin/release/android/symbols.zip" \
-H "X-HockeyAppToken: 置き換える" \
https://rink.hockeyapp.net/api/2/apps/置き換える/app_versions/upload