如何在 github 工作流中缓存 JDK 和 android sdk?

Posted

技术标签:

【中文标题】如何在 github 工作流中缓存 JDK 和 android sdk?【英文标题】:How to cache JDK and android sdk in github workflow? 【发布时间】:2021-11-24 14:38:57 【问题描述】:

我想在 github 操作工作流中缓存 JDK 和 android SDK。每次下载和安装 JDK 和 android sdk 都需要花费太多时间。我在工作流程中编写了以下步骤:

jobs:
  deploy:
    runs-on: ubuntu-latest
    timeout-minutes: 60
    steps:
      - uses: actions/checkout@v2
      - name: Set up JDK 11
        uses: actions/setup-java@v2
        with:
          distribution: "zulu"
          java-version: 11

      - name: Setup Android SDK
        uses: android-actions/setup-android@v2
      - name: Check out repository
        uses: actions/checkout@v2
        with:
          fetch-depth: 0

如何缓存这些步骤?

【问题讨论】:

【参考方案1】:

我使用了两个缓存选项。

    在 GitHub 中使用 artifacts。您必须在此处选择用于存储工件的 ID,然后使用相同的 ID 加载此工件。 使用 docker 映像进行缓存。在这种情况下,您可以将工作流程步骤移动到 Docker 映像中,然后使用 Docker build-push-action 构建此映像,然后您可以将此映像推送缓存到注册表中。如here 所述。 Docker 自动检测可以从缓存中重用的图像的哪些部分。例如。它只会下载 Java 11 一次,然后使用缓存中的那个。

【讨论】:

以上是关于如何在 github 工作流中缓存 JDK 和 android sdk?的主要内容,如果未能解决你的问题,请参考以下文章

在 GitHub Actions 工作流程中缓存 APT 包

git 上传代码如何设置不传日志,和缓存

在 GitHub Actions 中缓存 node_modules

如何在 GitHub Actions 中缓存纱线包

在 Github 操作中未正确加载缓存

在 Windows 上的 GitHub Actions 中缓存依赖项