gpt4 book ai didi

github - 如何在Github Actions工作流程中缓存Android NDK?

转载 作者:行者123 更新时间:2023-12-03 09:31:02 28 4
gpt4 key购买 nike

我想在我的Github Actions工作流程中缓存Android NDK。原因是我需要未预先安装在MacOS运行程序上的NDK和CMake的特定版本。

我尝试使用以下工作流程作业来实现此目的:

jobs:
build:
runs-on: macos-latest
steps:

- name: Cache NDK
id: cache-primes
uses: actions/cache@v1
with:
path: ${{ env.ANDROID_NDK_HOME }}
key: ${{ runner.os }}-ndk-${{ hashFiles(env.ANDROID_NDK_HOME) }}

- name: Install NDK
run: echo "y" | $ANDROID_HOME/tools/bin/sdkmanager "ndk;21.0.6113669" "cmake;3.10.2.4988404"

问题是 env上下文不包含 ANDROID_NDK_HOME变量。因此,这意味着 build.steps.with.path评估为空。

如果我使用以下步骤进行调试,则存在常规环境变量并输出正确的路径:
jobs:
build:
steps:
- name: Debug print ANDROID_NDK_HOME
run: echo $ANDROID_NDK_HOME

但是据我所知,常规环境变量只能在shell脚本中使用,而不能在 build.steps.with中使用。

最佳答案

  - name: Prepare NDK dir for caching ( workaround for https://github.com/actions/virtual-environments/issues/1337 )
run: |
sudo mkdir -p /usr/local/lib/android/sdk/ndk
sudo chmod -R 777 /usr/local/lib/android/sdk/ndk
sudo chown -R $USER:$USER /usr/local/lib/android/sdk/ndk
- name: NDK Cache
id: ndk-cache
uses: actions/cache@v2
with:
path: /usr/local/lib/android/sdk/ndk
key: ndk-cache-21.0.6113669-v2
- name: Install NDK
if: steps.ndk-cache.outputs.cache-hit != 'true'
run: echo "y" | sudo /usr/local/lib/android/sdk/tools/bin/sdkmanager --install "ndk;21.0.6113669"
这是我在项目中使用的配置。
注意事项:
  • 您需要创建ndk目录并更改权限以解决https://github.com/actions/virtual-environments/issues/1337
  • 确保
    您在if语句中使用了正确的id(在上面的示例中为ndk-cache),因此
    您实际上可以使用缓存
  • 关于github - 如何在Github Actions工作流程中缓存Android NDK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60776512/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com