みなさん、CircleCI使ってますか?
にわかエンジニアの私も、CircleCIは便利なので最近お世話になっています。
今回はAndroidアプリを作成する際に、git pushから自動でデプロイゲートへデプロイをしてくれる環境を構築しました。
今まではapkファイルを作成後に手動でデプロイゲートへアップしていましたが、gitへpushするだけで自動で実行されるようになったので非常に便利です!!
酔っ払いながら環境構築したので、忘れないうちにメモっておきます。
まずはアプリのプロジェクトをGitHubかBitbucketにpush
今回はAndroidアプリを作成していることを想定しています。
作成しているアプリはGitHubかBitbucketのどちらかでバージョン管理しているものとします。
CircleCIへログイン
とりあえず、CircleCIへログインしましょう。
アカウントを持っていない方はサインアップ。
GitHubかBitbucketのアカウントがあればすぐに使用できるので簡単です。
ログイン後は、自動でデプロイしたいアプリにチェックし、「Follow」を押しましょう。
CircleCIの環境変数を設定
プロジェクトの設定 -> Environment Variables -> Add Variables に、デプロイゲートのAPI Keyを設定しましょう。
今回、Key名は DEPLOY_GATE_API_KEY
としています。
デプロイゲートのAPI Keyは、デプロイゲートのアカウント設定ページから確認できます。
CircleCIの設定
Androidアプリのプロジェクトに、CircleCIの設定ファイルを追加します。
Androidアプリプロジェクトのルートディレクトリ(appとかgradleとか格納されているディレクトリ)に、.circleci/config.yml
ファイルを作成します。
設定のサンプルは公式にあがっています。
これを参考に、下記のように修正します。(今回テストは実行していません)
version: 2
jobs:
build:
branches:
only:
- develop
working_directory: ~/code
docker:
- image: circleci/android:api-25-alpha
environment:
JVM_OPTS: -Xmx3200m
steps:
- checkout
- restore_cache:
key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}
- run:
name: Download Dependencies
command: ./gradlew androidDependencies
- save_cache:
paths:
- ~/.gradle
key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}
- run:
name: Generate APK
command: ./gradlew assembleDebug
- run:
name: Upload DeployGate
command: curl -F "token=${DEPLOY_GATE_API_KEY}" -F "file=@app/build/outputs/apk/debug/app-debug.apk" -F "message=deployed" https://deploygate.com/api/users/デプロイゲートの登録名/apps
デプロイゲートの登録名
は、各自修正してください。
今回は Bitbucketで develop
ブランチにpushした場合のみデプロイゲートにデプロイされるようになっています。
以上です。
CI使えばいろいろできるので、今後も活用していこうと思います!