Github Actions кеширование зависимостей


В заметке я подготовил несколько сниппетов кода для быстрого включения кеширования в Github Actions.

Github Actions умеет кешировать файлы. Например, вот так можно кешировать Gradle Wrapper и зависимости приложения, в результате они не будут скачиваться при каждой сборке:

# Cache Gradle dependencies
- name: Setup Gradle Dependencies Cache
  uses: actions/cache@v2
  with:
    path: ~/.gradle/caches
    key: ${{ runner.os }}-gradle-caches-${{ hashFiles('**/*.gradle', '**/*.gradle.kts') }}

# Cache Gradle Wrapper
- name: Setup Gradle Wrapper Cache
  uses: actions/cache@v2
  with:
    path: ~/.gradle/wrapper
    key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}

JVM

В случае если вы используете actions/setup-java, то его вторая версия уже поддерживает кеширование зависимостей и враперов, достаточно ее включить:

  - name: Set up JDK
    uses: actions/setup-java@v2
    with:
      distribution: zulu
      java-version: 11
      cache: gradle

Поддерживаются gradle и maven.

Подробнее в офф документации