如何在 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 包