2016-10-27 9 views
6

私はTravis CIをセットアップしたオープンソースライブラリがほとんどありません。ビルドをチェックするのに25分以上かかりますが、うまく動作します。ほとんどの時間は、依存関係やAndroid SDKプラットフォームのダウンロードで無駄になります。トラヴィスCIのAndroid SDKをキャッシング

私は現在、あなたが、私はすでにいくつかのGradleのディレクトリをキャッシュしているが、それはまだAndroidのSDKプラットフォームをキャッシュしていない見ることができるように私の.travis.yml

language: android 
jdk: 
    - oraclejdk8 
before_install: 
- chmod +x gradlew 
env: 
    global: 
    - ANDROID_API_LEVEL=24 
    - EMULATOR_API_LEVEL=21 
    - ANDROID_BUILD_TOOLS_VERSION=24.0.1 
    - ANDROID_ABI=google_apis/armeabi-v7a 
    - ADB_INSTALL_TIMEOUT=20 # minutes (2 minutes by default) 

android: 
    components: 
    - tools 
    - tools 
    - platform-tools 
    - build-tools-$ANDROID_BUILD_TOOLS_VERSION 
    - android-$ANDROID_API_LEVEL 
    - android-$EMULATOR_API_LEVEL 
    - extra 
    - add-on 
    - extra-google-m2repository 
    - extra-android-m2repository 
    # Google Play Services 
    - extra-google-google_play_services 
    # Support library 
    - extra-android-support 

    - addon-google_apis-google-$ANDROID_API_LEVEL 
    - addon-google_apis-google-$EMULATOR_API_LEVEL 

    - sys-img-armeabi-v7a-addon-google_apis-google-$ANDROID_API_LEVEL 
    - sys-img-armeabi-v7a-addon-google_apis-google-$EMULATOR_API_LEVEL 

before_cache: 
    - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock 
cache: 
    directories: 
    - $HOME/.gradle/wrapper 
    - $HOME/.gradle/native 
    - $HOME/.gradle/daemon 
    - $HOME/.gradle/caches/jars-1 
    - $HOME/.gradle/caches/2.3 

before_script: 
    - echo no | android create avd --force -n test -t android-21 --abi armeabi-v7a 
    - emulator -avd test -no-skin -no-audio -no-window & 
    - android-wait-for-emulator 
    - adb shell input keyevent 82 & 

script: 
    - gradle clean check 

に次があります。私はまだキャッシュする必要があるいくつかのディレクトリが不足していると確信しています。

これらのSDKプラットフォームと依存関係をキャッシュすることで、ビルドを高速化する方法はありますか?

答えて

2

これは、キャッシュSDKツールをお勧めしますが、それが可能だていない、私は過去にそれをやった、私はサンプル

を探します、一方、それをスピードアップするためにこれらの不要な行を削除し、それが動作するかどうか私に言ってください。 。

あなたが唯一このようなリスト、リポジトリ、1つのエミュレータと特定のコンポーネントをインストールする必要はありません
- extra 
    - add-on 
    # Google Play Services 
    - extra-google-google_play_services 
    # Support library 
    - extra-android-support 
    - addon-google_apis-google-$ANDROID_API_LEVEL 
    - sys-img-armeabi-v7a-addon-google_apis-google-$ANDROID_API_LEVEL 

:私は、私が使用してSDKツールのエキストラをキャッシュしてthis buildを見つけ:

- add-on 
- extra 


Installing Archives: 
    Preparing to install archives 
    Downloading GPU Debugging tools, revision 1.0.3 
    Installing GPU Debugging tools, revision 1.0.3 
    Installed GPU Debugging tools, revision 1.0.3 
    Downloading Android Support Repository, revision 29 
    Installing Android Support Repository, revision 29 
    Installed Android Support Repository, revision 29 
    Downloading Android Support Library, revision 23.2.1 
    Installing Android Support Library, revision 23.2.1 
    Installed Android Support Library, revision 23.2.1 
    Downloading Google AdMob Ads SDK, revision 11 (Obsolete) 
    Installing Google AdMob Ads SDK, revision 11 (Obsolete) 
    Installed Google AdMob Ads SDK, revision 11 (Obsolete) 
    Downloading Google Analytics App Tracking SDK, revision 3 (Obsolete) 
    Installing Google Analytics App Tracking SDK, revision 3 (Obsolete) 
    Installed Google Analytics App Tracking SDK, revision 3 (Obsolete) 
    Downloading Android Auto Desktop Head Unit emulator, revision 1.1 
    Installing Android Auto Desktop Head Unit emulator, revision 1.1 
    Installed Android Auto Desktop Head Unit emulator, revision 1.1 
    Downloading Google Cloud Messaging for Android Library, revision 3 (Obsolete) 
    Installing Google Cloud Messaging for Android Library, revision 3 (Obsolete) 
    Installed Google Cloud Messaging for Android Library, revision 3 (Obsolete) 
    Downloading Google Play services for Froyo, revision 12 (Obsolete) 
    Installing Google Play services for Froyo, revision 12 (Obsolete) 
    Installed Google Play services for Froyo, revision 12 (Obsolete) 
    Downloading Google Play services, revision 29 
    Installing Google Play services, revision 29 
    Installed Google Play services, revision 29 
    Downloading Google Repository, revision 25 
    Installing Google Repository, revision 25 
    Installed Google Repository, revision 25 
    Downloading Google Play APK Expansion library, revision 1 
    Installing Google Play APK Expansion library, revision 1 
    Installed Google Play APK Expansion library, revision 1 
    Downloading Google Play Licensing Library, revision 1 
    Installing Google Play Licensing Library, revision 1 
    Installed Google Play Licensing Library, revision 1 
    Downloading Google Play Billing Library, revision 5 
    Installing Google Play Billing Library, revision 5 
    Installed Google Play Billing Library, revision 5 
    Downloading Android Auto API Simulators, revision 1 
    Installing Android Auto API Simulators, revision 1 
    Installed Android Auto API Simulators, revision 1 
    Downloading Google Web Driver, revision 2 
    Installing Google Web Driver, revision 2 
    Installed Google Web Driver, revision 2 
    Done. 15 packages installed. 

November 19, 2013 
Do you accept the license 'google-gdk-license-35dc2951' [y/n]: y 
Installing Archives: 
    Preparing to install archives 
    Downloading Google APIs, Android API 23, revision 1 
    Installing Google APIs, Android API 23, revision 1 
    Installed Google APIs, Android API 23, revision 1 
    Downloading Google APIs, Android API 21, revision 1 
    Installing Google APIs, Android API 21, revision 1 
    Installed Google APIs, Android API 21, revision 1 
    Downloading Google APIs (x86 System Image), Android API 19, revision 18 
    Installing Google APIs (x86 System Image), Android API 19, revision 18 
    Installed Google APIs (x86 System Image), Android API 19, revision 18 
    Downloading Google APIs, Android API 19, revision 18 
    Installing Google APIs, Android API 19, revision 18 
    Installed Google APIs, Android API 19, revision 18 
    Downloading Glass Development Kit Preview, Android API 19, revision 11 
    Installing Glass Development Kit Preview, Android API 19, revision 11 
    Installed Glass Development Kit Preview, Android API 19, revision 11 
    Downloading Google APIs, Android API 18, revision 4 
    Installing Google APIs, Android API 18, revision 4 
    Installed Google APIs, Android API 18, revision 4 
    Downloading Google APIs, Android API 17, revision 4 
    Installing Google APIs, Android API 17, revision 4 
    Installed Google APIs, Android API 17, revision 4 
    Downloading Google APIs, Android API 16, revision 4 
    Installing Google APIs, Android API 16, revision 4 
    Installed Google APIs, Android API 16, revision 4 
    Downloading Google APIs, Android API 15, revision 3 
    Installing Google APIs, Android API 15, revision 3 
    Installed Google APIs, Android API 15, revision 3 
    Downloading Google APIs, Android API 10, revision 2 (Obsolete) 
    Installing Google APIs, Android API 10, revision 2 (Obsolete) 
    Installed Google APIs, Android API 10, revision 2 (Obsolete) 

更新

cache: 
    apt: true 
    directories: 
    - ${TRAVIS_BUILD_DIR}/gradle/caches/ 
    - ${TRAVIS_BUILD_DIR}/gradle/wrapper/dists/ 
    - ${TRAVIS_BUILD_DIR}/android-sdk/extras/ 

env: 
    global: 
    - GRADLE_USER_HOME=${TRAVIS_BUILD_DIR}/gradle 
    - ANDROID_HOME=${TRAVIS_BUILD_DIR}/android-sdk 
    - SDK=${TRAVIS_BUILD_DIR}/android-sdk 
    - PATH=${GRADLE_USER_HOME}/bin/:${SDK}/:${SDK}/tools/:${SDK}/platform-tools/:${PATH} 

before_install: 
    - echo "WARNING delete this when fixed"; export OLD_SDK=/usr/local/android-sdk-23.0.2; 
              mkdir -p ${SDK}; 
              cp -u -R ${OLD_SDK}/platforms ${SDK}/platforms; 
              cp -u -R ${OLD_SDK}/system-images ${SDK}/system-images; 
              cp -u -R ${OLD_SDK}/tools ${SDK}/tools || echo "CP ERROR" 

デフォルトのパスwheを直接キャッシュに保存する必要はありません。リポジトリが常駐RE:

/usr/local/android-sdk/extras 

あなたdon't wantは、すべてのシステム・イメージを含むキャッシュへの完全なSDKツールを保存します。

キャッシュの目的は、言語固有の 依存関係簡単かつ迅速にインストールすることですので、 バンドラー、ピップ、作曲などのツールに関連するすべてのものは、NPM、Gradleでは、Mavenは、 キャッシュに入るべきものです。彼らは元のソースから、キャッシュ からダウンロードするように長い時間がかかるとしてダウンロードしてインストールするには、迅速しかし遅い

大きなファイルは、キャッシュからではない 利益を行います

  • のAndroidのSDK
  • Debianパッケージ
  • JDKパッケージ
  • コンパイルされたバイナリ

Default environment variables

TRAVIS_BUILD_DIR:建設中 リポジトリが労働者にコピーされているディレクトリへの絶対パス。

関連する問題