我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

在未接入互联网的自托管运行器上设置工具缓存

要在没有互联网连接的自托管运行器上使用包含的 ' actions/setup' 操作,您必须先为工作流程填充运行器的工具缓存。

本文内容

注:GitHub Enterprise Server 2.22 上的 GitHub Actions 支持是有限的公测版。 要查看外部存储要求并请求访问测试版,请参阅“启用 GitHub Actions 和配置存储”。

注: GitHub 托管的运行器目前在 GitHub Enterprise Server 上不受支持。 您可以在 GitHub 公共路线图 上查看有关未来支持计划的更多信息。

关于包含的设置操作和运行器工具缓存

GitHub Enterprise Server 上的 GitHub Actions 设计为在没有互联网连接的环境中工作。 默认情况下,工作流程不能使用直接来自 GitHub.com 和 GitHub Marketplace 的操作。

大多数官方 GitHub 编写的操作都会自动与 GitHub Enterprise Server 捆绑在一起。 但是,没有接入互联网的自托管运行器需要进行一些配置,然后才能使用包含的 actions/setup-LANGUAGE 操作,例如 setup-node

actions/setup-LANGUAGE 操作通常需要接入互联网才能将所需的环境二进制文件下载到运行器的工具缓存。 没有互联网连接的自托管运行器无法下载二进制文件,所以您必须手动填充运行器上的工具缓存。

您可以通过在 GitHub.com 上运行 GitHub Actions 工作流程来填充运行器工具缓存,该工作流程将 GitHub 托管的运行器的工具缓存作为项目上传,然后可以在互联网断开的自托管运行器上传输和提取。

注:您只能对拥有相同操作系统和架构的自托管运行器使用 GitHub 托管的运行器工具缓存。 例如,如果您使用 ubuntu-18.04 GitHub 托管的运行器生成工具缓存,则自托管运行器必须是 64 位 Ubuntu 18.04 计算机。 有关 GitHub 托管的运行器的更多信息,请参阅“GitHub 托管运行器的虚拟环境”。

基本要求

  • 确定自托管运行器需要哪些开发环境。 下面的示例演示如何使用 Node.js 版本 10 和 12 填充 setup-node 操作的工具缓存。
  • 访问可用于运行工作流程的 GitHub.com 上的仓库。
  • 访问自托管运行器的文件系统以填充工具缓存文件夹。

填充自托管运行器的工具缓存

  1. 在 GitHub.com 上,导航到可用于运行 GitHub Actions 工作流程的仓库。

  2. 在仓库的 .github/workflow 文件夹中创建一个新的工作流程文件,用于上传包含 GitHub 托管的运行器工具缓存的构件。

    下面的示例演示了使用 Node.js 版本 10 和 12 的 setup-node 操作为 Ubuntu 18.04 环境上传工具缓存的工作流程。

    name: Upload Node.js 10 and 12 tool cache
    on: push
    jobs:
      upload_tool_cache:
        runs-on: ubuntu-18.04
        steps:
          - name: Clear any existing tool cache
            run: |
              mv "${{ runner.tool_cache }}" "${{ runner.tool_cache }}.old"
              mkdir -p "${{ runner.tool_cache }}"
          - name: Setup Node 10
            uses: actions/setup-node@v1
            with:
              node-version: 10.x
          - name: Setup Node 12
            uses: actions/setup-node@v1
            with:
              node-version: 12.x
          - name: Archive tool cache
            run: |
              cd "${{ runner.tool_cache }}"
              tar -czf tool_cache.tar.gz *
          - name: Upload tool cache artifact
            uses: actions/upload-artifact@v2
            with:
              path: ${{runner.tool_cache}}/tool_cache.tar.gz
    
  3. 从工作流程运行下载工具缓存构件。 有关下载构件的说明,请参阅“下载工作流程构件”。

  4. 将工具缓存构件传输到自托管的运行器,并将其提取到本地工具缓存目录。 默认工具缓存目录是 RUNNER_DIR/_work/_tool。 如果运行器尚未处理任何任务,您可能需要创建 _work/_tool 目录。

    提取上述示例中上传的工具缓存构件后,自托管运行器上应具有类似于以下示例的目录结构:

    RUNNER_DIR
    ├── ...
    └── _work
        ├── ...
        └── _tool
            └── node
                ├── 10.22.0
                │   └── ...
                └── 12.18.3
                    └── ...
    

没有互联网接入的自托管运行器现在应该能够使用 setup-node 操作。 如果遇到问题,请确保已为工作流程填充了正确的工具缓存。 例如,如果您需要使用 setup-python 操作,则需要通过要使用的 Python 环境填充工具缓存。

此文档对您有帮助吗?

Privacy policy

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。