Skip to main content
我们经常发布文档更新,此页面的翻译可能仍在进行中。 有关最新信息,请访问英语文档

选择作业的运行器

定义将在工作流程中处理作业的计算机类型。

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

概述

使用 jobs.<job_id>.runs-on 定义要运行作业的计算机类型。

  • 目标计算机可以是运行器

  • 可以根据分配给运行器的标签来定位运行器。

  • 可以提供以下形式的 runs-on

    • 单个字符串
    • 包含字符串的单个变量
    • 字符串数组、包含字符串的变量或两者的组合
  • 如果指定字符串数组,工作流将在与所有指定 runs-on 值匹配的运行器上执行。 例如,此处的作业将仅在具有标签 linuxx64gpu 的自托管运行器上运行:

    runs-on: [self-hosted, linux, x64, gpu]
    

    有关详细信息,请参阅“选择自托管运行器”。

  • 可以在数组中混合使用字符串和变量。 例如:

    on:
      workflow_dispatch:
        inputs:
          chosen-os:
            required: true
            type: choice
            options:
            - Ubuntu
            - macOS
    
    jobs:
      test:
        runs-on: [self-hosted, "${{ github.event.inputs.chosen-os }}"]
        steps:
        - run: echo Hello world!
    

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

选择 GitHub 托管的运行器

如果使用 GitHub 托管的运行器,每个作业将在 runs-on 指定的运行器映像的新实例中运行。

可用的 GitHub 托管的运行器类型包括:

运行器映像 YAML 工作流标签 说明
Windows Server 2022 windows-latestwindows-2022 windows-latest 标签当前使用 Windows Server 2022 运行器映像。
Windows Server 2019 windows-2019
Ubuntu 22.04 ubuntu-latestubuntu-22.04 ubuntu-latest 标签当前使用 Ubuntu 22.04 运行器映像。
Ubuntu 20.04 ubuntu-20.04
Ubuntu 18.04 [已弃用] ubuntu-18.04 迁移到 ubuntu-20.04ubuntu-22.04。 有关详细信息,请参阅此 GitHub 博客文章
macOS 13 Ventura [Beta 版] macos-13macos-13-xl
macOS 12 Monterey macos-latestmacos-12macos-latest-xlmacos-12-xl macos-latestmacos-latest-xl 工作流标签目前使用 macOS 12 运行器映像。 有关 macOS XL 运行器(12 核)每分钟定价的信息,请参阅“关于 GitHub Actions 的计费”。
macOS 11 Big Sur macos-11 None

注意:-latest 运行器映像是 GitHub 提供的最新稳定映像,但可能不是操作系统供应商提供的最新版本的操作系统。

警告:beta 版映像和已弃用的映像“按原样提供”、“包含全部错误”且“视可用性情况”提供,不在服务级别协议和保证的涵盖范围之内。 客户支持可能不会涵盖 Beta 版映像。

示例:指定操作系统

runs-on: ubuntu-latest

有关详细信息,请参阅“关于 GitHub 托管的运行程序”。

选择自托管运行器

要为作业指定自托管运行器,请在工作流文件中使用自托管运行器标签配置 runs-on

所有自托管运行器都有 self-hosted 标签。 仅使用此标签将选择任何自托管运行器。 选择符合特定条件的运行器,例如操作系统或体系结构,建议提供以 self-hosted 开头的标签数组(必须首先列出),然后根据需要包含其他标签。 指定标签数组时,作业将在具有你指定的所有标签的运行器上排队。

尽管 self-hosted 标签不是必需的,但强烈建议在使用自托管运行器时指定它,以确保作业不会无意中指定任何当前或将来的 GitHub 托管运行器。

示例:使用标签进行运行器选择

runs-on: [self-hosted, linux]

有关详细信息,请参阅“关于自托管运行程序”和“在工作流中使用自托管运行程序”。