簡體   English   中英

在Travis CI中緩存Android SDK

[英]Caching Android SDK in Travis CI

我沒有幾個可以在其中設置Travis CI的開源庫。 它們運行正常,除了需要25分鍾以上的時間來檢查構建。 大多數時間都浪費在下載依賴項和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

如您所見,我已經緩存了一些gradle目錄,但是仍然沒有緩存Android SDK平台。 我確定我缺少一些仍需要緩存的目錄。

有什么辦法可以通過緩存那些SDK平台和依賴項來加快構建速度?

不建議您緩存SDK工具,但是有可能,我以前做過,我將搜索一個示例

同時,請刪除這些不必要的行以加快速度並告訴我是否可行。

    - 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

您只需要安裝存儲庫,一個仿真器和特定的組件,而不需要像這樣的列表:

- 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)

更新:我找到了這個構建版本 ,在這里我使用以下自定義路徑來緩存SDK工具的額外功能:

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"

您不需要這樣做,而是將存儲庫所在的默認路徑直接保存到緩存中:

/usr/local/android-sdk/extras

不想保存完整的sdk工具來緩存包括所有系統映像。

緩存的目的是使安裝特定於語言的依賴關系變得簡單快捷,因此與工具(如Bundler,pip,Composer,npm,Gradle,Maven)相關的所有內容都應放入緩存中。

快速安裝但下載緩慢的大型文件無法從緩存中受益,因為它們從緩存中下載所需的時間與從原始源中下載所需的時間一樣長:

  • Android SDK
  • Debian軟件包
  • JDK套件
  • 編譯的二進制文件

默認環境變量

TRAVIS_BUILD_DIR :在工作服務器上已復制要構建的存儲庫的目錄的絕對路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM