web-dev-qa-db-ja.com

AndroidプロジェクトのGitLab.comCI共有ランナー

AndroidアプリケーションgradleプロジェクトにGitLabCIシステムを使用したい。プロジェクトリポジトリは GitLab.com でホストされているので、1つ使用したいGitlabInc。が提供する共有ランナーの.
公式チュートリアル 提供 NodeJSプロジェクトランナー構成の例であり、Rubyプロジェクトの共有ランナーもありますが、例が見つかりませんでしたまたはAndroidアプリケーションをサポートするランナーですら。

  • 共有ランナーGitLab.comが提供はありますか?これはAndroidプロジェクトをすぐにサポートします(image: Android:4.2.2などを指定することにより)?
  • GitLab.comが提供する既存の共有ランナーをサポートするように構成する方法はありますかAndroidプロジェクト(。gitlab-ci.ymlを変更することにより) =ファイル)?
17
JeB

このDockerイメージを使用してAndroid build on gitlab-ci

更新:

Gitlabレジストリに移動しました

image: registry.gitlab.com/showcheap/Android-ci:latest

before_script:
    - export GRADLE_USER_HOME=`pwd`/.gradle
    - chmod +x ./gradlew

cache:
  paths:
     - .gradle/wrapper
     - .gradle/caches

build:
  stage: build
  script:
     - ./gradlew assemble

test:
  stage: test
  script:
     - ./gradlew check

フルガイドはこのGitlabリポジトリをチェックインできます: https://gitlab.com/showcheap/Android-ci

ターゲットSDKとビルドツールのバージョンがリストされていない場合は、プルリクエストを行うか、リポジトリをフォークしてから、カスタムターゲットとビルドバージョンを作成してください。

14
Sucipto

これは .gitlab-ci.yml Androidプロジェクトで使用しているファイル。一度に1つのコンポーネントをインストールするように変更したため、かなり安定しています。ライセンスを受け入れられず、ビルドが失敗することがあります。 。しかし、それはまれなケースです。ビルドツールがこのスクリプトと同じであることが重要です(build-tools-23.0.3)ここでスクリプトを変更する必要があるかもしれません。

Lintレポートを取得するために使用するartifacts宣言は省略できます。

before_script:
  - apt-get --quiet update --yes
  - apt-get --quiet install --yes wget tar unzip openjdk-7-jdk lib32stdc++6 lib32z1
  - wget --quiet --output-document=Android-sdk.tgz https://dl.google.com/Android/android-sdk_r24.4.1-linux.tgz
  - tar --extract --gzip --file=Android-sdk.tgz
  - echo y | Android-sdk-linux/tools/Android --silent update sdk --no-ui --all --filter Android-23
  - echo y | Android-sdk-linux/tools/Android --silent update sdk --no-ui --all --filter platform-tools
  - echo y | Android-sdk-linux/tools/Android --silent update sdk --no-ui --all --filter build-tools-23.0.3
  - echo y | Android-sdk-linux/tools/Android --silent update sdk --no-ui --all --filter extra-Android-m2repository
  - echo y | Android-sdk-linux/tools/Android --silent update sdk --no-ui --all --filter extra-google-google_play_services
  - echo y | Android-sdk-linux/tools/Android --silent update sdk --no-ui --all --filter extra-google-m2repository
  - wget --quiet --output-document=gradle.Zip https://services.gradle.org/distributions/gradle-2.12-bin.Zip
  - unzip -q gradle.Zip
  - export Android_HOME=$PWD/Android-sdk-linux

build:
  script:
    - gradle-2.12/bin/gradle assembleDebug check --stacktrace
  artifacts:
    paths:
    - library/build/outputs/lint-results.html
    - app/build/outputs/lint-results.html
5
Kai