Почему Travis CI загружает все при каждом его создании?

Я узнал, что каждый раз, когда Travis CI строит проект, он должен снова загружать все пакеты SDK, такие как платформы-инструменты, библиотеку поддержки, текущий SDK и т. Д.

Можно ли избежать этого и заставить Тревиса повторно использовать то, что он скачал в первый раз?

Вероятно, я допустил некоторые ошибки в файле .travis.yml, вот его копия

language: android android: components: # Uncomment the lines below if you want to # use the latest revision of Android SDK Tools - platform-tools - tools # The BuildTools version used by your project - build-tools-23.0.2 # The SDK version used to compile your project - android-23 # Additional components - extra-android-support - extra-google-google_play_services - extra-google-m2repository - extra-android-m2repository - addon-google_apis-google-19 # Specify at least one system image, # if you need to run emulator(s) during your tests # - sys-img-armeabi-v7a-android-19 # - sys-img-x86-android-17 script: - ./gradlew check - ./gradlew test --continue # - ./gradlew build connectedCheck 

Почему Travis CI загружает все при каждом его создании?

Мы говорим об этом здесь , Travis-ci загружает кеш с S3, поэтому нет существенного улучшения скорости кэширования больших файлов, таких как Android SDK.

Как включить Android SDK в кэше Travis-ci? (не рекомендуется)

Соответствующие биты здесь, вы можете добавить в кэш любой файл, который вам нравится, и узнать его путь:

 cache: directories: - ${TRAVIS_BUILD_DIR}/gradle/caches/ - ${TRAVIS_BUILD_DIR}/gradle/wrapper/dists/ - ${TRAVIS_BUILD_DIR}/android-sdk/extras/ # please don't include sys-images 

Я сделал это некоторое время назад, вы можете увидеть код в ссылке, разделяемой @ nicolas-f :

 language: android jdk: oraclejdk8 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: - export OLD_SDK=/usr/local/android-sdk-24.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 cache: apt: true directories: - ${TRAVIS_BUILD_DIR}/gradle/caches/ - ${TRAVIS_BUILD_DIR}/gradle/wrapper/dists/ - ${TRAVIS_BUILD_DIR}/android-sdk/extras/ android: components: # Update Android SDK Tools - tools - platform-tools - build-tools-23.0.2 - android-23 - add-on - extra script: - ./gradlew check 

Используйте ls для подтверждения того, что путь SDK не изменился в другое время.

В настоящее время нет необходимости перемещать SDK, и вам нужно обновить другие вещи, возможно, добавить еще tools после tools platform-tools , этот код устарел.