Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

此版本的 GitHub Enterprise 已停止服务 2023-01-18. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

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

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

注意:GitHub Enterprise Server 目前不支持 GitHub 托管的运行器。 可以在 GitHub public roadmap 上查看有关未来支持计划的更多信息。

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

GitHub Enterprise Server 上的 GitHub Actions 设计为在无法完全访问互联网的环境中工作。 默认情况下,工作流不能使用直接来自 GitHub.com 和 GitHub Marketplace 的操作。

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

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

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

注意:你只能对拥有相同操作系统和架构的自托管运行器使用 GitHub 托管的运行器工具缓存。 例如,如果你使用 ubuntu-22.04 GitHub 托管的运行器生成工具缓存,则自托管运行器必须是 64 位 Ubuntu 22.04 计算机。 若要详细了解 GitHub 托管的运行器,请参阅“关于 GitHub 托管的运行器”。

先决条件

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

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

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

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

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

    name: Upload Node.js 10 and 12 tool cache
    on: push
    jobs:
      upload_tool_cache:
        runs-on: ubuntu-22.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@v2
            with:
              node-version: 10.x
          - name: Setup Node 12
            uses: actions/setup-node@v2
            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
                    └── ...
    

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