You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub Workflow中缓存JDK与Android SDK以缩短工作流运行耗时?

GitHub Actions缓存JDK和Android SDK配置方案

你现有配置里重复写了两次actions/checkout步骤,可删除第一次的,保留带fetch-depth: 0的即可,避免重复拉取代码。具体缓存配置如下:

完整工作流配置

jobs:
  deploy:
    runs-on: ubuntu-latest
    timeout-minutes: 60
    steps:
      - name: Check out repository
        uses: actions/checkout@v2
        with:
          fetch-depth: 0

      - name: Set up JDK 11
        uses: actions/setup-java@v2
        with:
          distribution: "zulu"
          java-version: 11
          # 按项目实际构建工具填写,可选值gradle、maven、sbt
          cache: 'gradle'

      - name: Cache Android SDK
        uses: actions/cache@v3
        id: android-sdk-cache
        with:
          path: ${{ env.ANDROID_SDK_ROOT }}
          # 可自定义key规则,当前绑定build.gradle哈希,配置变更自动更新缓存
          key: android-sdk-${{ hashFiles('**/build.gradle') }}
          restore-keys: android-sdk-

      - name: Setup Android SDK
        uses: android-actions/setup-android@v2
        # 未命中缓存时才执行下载安装逻辑
        if: steps.android-sdk-cache.outputs.cache-hit != 'true'

配置说明

  • JDK缓存通过actions/setup-java内置的cache参数实现,不仅会缓存JDK安装文件,还会同步缓存对应构建工具的依赖包,大幅缩减构建耗时。
  • Android SDK缓存通过官方actions/cache实现,将安卓SDK的全局安装目录整体缓存,命中缓存时会跳过后续的SDK下载安装步骤,直接复用已有文件。
  • 你可以根据实际需求调整缓存key规则,如果不需要绑定构建配置,也可以直接写固定前缀加SDK版本号,比如android-sdk-33。

内容的提问来源于stack exchange,提问作者shafayat hossain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 01:18:02