【问题标题】:How do you cache sdkmanager in AzureDevops?如何在 Azure Devops 中缓存 sdk 管理器?
【发布时间】:2021-02-16 07:26:56
【问题描述】:

我在管道中执行以下操作

          - bash: |
              $ANDROID_SDK_ROOT/tools/bin/sdkmanager 'ndk;20.0.5594570' >/dev/null
              $ANDROID_SDK_ROOT/tools/bin/sdkmanager 'ndk;21.0.6113669' >/dev/null
            displayName: "install NDK"

大约需要 3 分钟

我想知道是否可以缓存它以加快速度。但是,我不确定它把文件放在哪里。

【问题讨论】:

    标签: android caching azure-devops azure-pipelines


    【解决方案1】:

    您似乎想缓存 ndk。您可以检查管道缓存:

    https://docs.microsoft.com/en-us/azure/devops/pipelines/release/caching?view=azure-devops

    使用Cache task 将缓存添加到管道中。管道缓存可以通过允许在以后的运行中重用一次运行的输出或下载的依赖项来帮助减少构建时间,从而减少或避免重新创建或重新下载相同文件的成本。在每次运行开始时反复下载相同依赖项的情况下,缓存特别有用。

    【讨论】:

    • 我们遇到的问题是“下载的NDK存储在哪里”?这样我就可以添加它了。
    • 您可以使用命令$ANDROID_SDK_ROOT/tools/bin/sdkmanager '--list' 列出已安装和可用的软件包。该位置应该是ndk/20.0.5594570/ ndk/21.0.6113669/
    • 是的,但你的回答留下了一些问题。
    • 能否指出或修改一下?
    【解决方案2】:

    如上一个答案所述,应该使用Cache@2 任务。并且根据 ndk 下载到的评论路径在ANDROID_SDK_ROOT 中。需要注意的是 ANDROID_SDK_ROOT 不是一个可以立即访问的变量。它需要暴露出来。

    因此,将所有内容与一个工作示例放在一起:

    steps:
    - bash: |
        echo "##vso[task.setvariable variable=ANDROID_SDK_ROOT;]$ANDROID_SDK_ROOT"
    - task: Cache@2
      inputs:
        key: 'ndk | "$(Agent.OS)"'
        path: $(ANDROID_SDK_ROOT)/ndk
    
    - bash: |
        $ANDROID_SDK_ROOT/tools/bin/sdkmanager 'ndk;20.0.5594570' >/dev/null
        $ANDROID_SDK_ROOT/tools/bin/sdkmanager 'ndk;21.0.6113669' >/dev/null
      displayName: "install NDK"
    

    这种技术可以在其他地方使用,以便您获得一个代理池不可知的脚本,其中文件位于主目录中。适用于 macOSubuntu 池。

    steps:
    - bash: |
        echo "##vso[task.setvariable variable=HOME_DIRECTORY;]$HOME"
    - task: Cache@2
      inputs:
        key: 'gradlew | "$(Agent.OS)"'
        # this won't work on macOS
        # path: /home/vsts/.gradle/wrapper
        # but this will
        path: $(HOME_DIRECTORY)/.gradle/wrapper
    - task: Cache@2
      inputs:
        key: 'gradle | "$(Agent.OS)"'
        path: $(HOME_DIRECTORY)/.gradle/caches
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-06
      • 2021-02-14
      • 1970-01-01
      • 2020-08-12
      相关资源
      最近更新 更多