読者です 読者をやめる 読者になる 読者になる

くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

Ubuntu14.04でCI環境(Tomcat7+Jenkins+Nexus)を作る その2 JenkinsとAndroidのGradleの設定

android jenkins nexus

前回の記事の続き wannabe-jellyfish.hatenablog.com

前回までで、Tomcatを立てて、JenkinsとSonatype Nexusをインストールできた

CIするためには、JenkinsのJobを作ったりする準備しないといけない

今回はそこら辺の備忘録

ちなみに、環境は以下な感じ

Jenkinsの設定

必要なプラグインのインストール

デフォルトでは、Gitからcloneしたり、Gradleでビルドしたり、Emulatorを使ったテストができない

そのため、まずは必要なプラグインをインストール プラグインのインストールは、

  • 「Jenkinsの管理」>「プラグインの管理」>「利用可能」タブからー

インストールするプラグインは以下の3つ

  1. Git Plugin
  2. Gradle Plugin
  3. Android Emulator Plugin

Jenkins自体の設定

プラグインを追加したら、いくつか設定が必要

設定画面は、

  • 「Jenkinsの管理」>「システムの設定」からー

以下の内容を設定

  1. 環境変数の設定
  2. Androidの設定
    • 「Andorid」の「Android SDK root」にインストールしたSDKのパスを設定
  3. Gitの設定
    • 「Git」の「Git Installations」にJenkinsが利用するGitを追加
    • 以下の感じで設定
      • Name: Default
      • Path to Git executable: git
      • 自動インストール: 有効
  4. Gradleの設定
    • 「Gradle」の「インストール済みGradle」にJenkinsが利用するGradleを追加
    • 以下な感じで設定
      • name: Gradle 2.5
      • 自動インストール: 有効
      • バージョン: Gradle 2.5
    • ※gradlewrapperを使うから不要かも。。。(-_-;)

AndoridライブラリのJobを作成する

いよいよJobを作成!

いつもどおり「新規ジョブ作成」から!

  1. 「フリースタイル・プロジェクトのビルド」を選択
  2. ソースコード管理」でGitを選択
    1. 「Repository URL」にリモートリポジトリのURLを設定
    2. 「Branch Specifier」に対象のブランチ名を設定
  3. 「ビルド」で「Invoke Gradle script」を選択
    1. 「Use Gradlke Wrapper」を選択
    2. 「Task」に実行したいタスクを設定
      • ビルドだけであれば「build」とか
      • テストもしたかったら「test」とか

これでビルド実行して問題なければOK!!

うまくいかなかったとこ

インストールしたAndroidのbuild toolのバージョンであってなくて、Jobがこけたりしてた。。。。・゚・(ノД`)・゚・。

サーバ上にインストールされているAndoridのバージョンなども要確認!!

Android側の設定(build.gradleの設定)

Jenkinsの設定もして、ビルドやテストの自動化ができた!

なので、Androidのbuild.gradleの設定もして、gradleのタスクでNexusにアップロードできるようにする!!

変更したbuild.gradleは以下な感じー

apply plugin: 'com.android.library'
apply plugin: 'maven'

group = 'jp.memorylovers'
version = '1.0-SNAPSHOT'

uploadArchives {
    repositories {
        mavenDeployer {
            snapshotRepository(url: 'http://localhost:8080/nexus/content/repositories/snapshots/') {
                authentication(userName: "deployment", password: "deployment123")
            }
            repository(url: 'http://localhost:8080/nexus/content/repositories/releases/') {
                authentication(userName: "deployment", password: "deployment123")
            }
        }
    }
}

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        minSdkVersion 17
        targetSdkVersion 22
        versionCode 1
        versionName project.version
    }
}

ようは、

  1. mavenプラグインを使って、
  2. Nexusにアップロードする「uploadArchive」タスクを追加

をしている感じです!

とりあえず、今回はここまでー!! また次回!!

参考にしたサイト様