Skip to main content

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

变量参考

查找有关 GitHub Actions 工作流中支持的变量、命名约定、限制和上下文的信息。

本文列出了可在 GitHub Actions 工作流中使用的支持变量,包括环境变量、配置变量和 GitHub 提供的默认变量。 配置工作流时,可使用此参考查找变量名称、命名约定、限制和支持的上下文。

有关变量的详细信息,请参阅 变量

默认环境变量

GitHub 设置的默认环境变量可用于工作流程中的每个步骤。

由于默认环境变量由 GitHub 设置,并且未在工作流中进行定义,因此无法通过 env 上下文访问它们。 但是,大多数默认变量都有一个对应且名称类似的上下文属性。 例如,在工作流处理期间,可以使用 ${{ github.ref }} 上下文属性读取 GITHUB_REF 变量的值。

不能覆盖名为 GITHUB_*RUNNER_* 的默认环境变量的值。 目前可以覆盖 CI 变量的值。 但是,并不能保证这总是可行。 有关设置环境变量的详细信息,请参阅 在变量中存储信息GitHub Actions 的工作流命令

强烈建议操作使用变量访问文件系统,而非使用硬编码的文件路径。 GitHub 设置供操作用于所有运行器环境中的变量。

变量说明
CI始终设置为 true
GITHUB_ACTION正在运行的操作的名称,或步骤的 id。 例如,对于操作,为 __repo-owner_name-of-action-repo

在当前步骤运行不带 id 的脚本时,GitHub 会删除特殊字符并使用名称 __run。 如果在同一作业中多次使用相同的脚本或操作,则名称将包含一个由序号前跟下划线组成的后缀。 例如,运行的第一个脚本的名称将为 __run,第二个脚本的名称将为 __run_2。 同样,actions/checkout 的第二次调用将为 actionscheckout2
GITHUB_ACTION_PATH操作所在的路径。 此属性仅在复合操作中受支持。 你可以使用此路径更改该操作加载的地点目录,并访问同一存储库里的其他文件。 例如,/home/runner/work/_actions/repo-owner/name-of-action-repo/v1
GITHUB_ACTION_REPOSITORY对于执行操作的步骤,这是操作的所有者和存储库名称。 例如 actions/checkout
GITHUB_ACTIONS当 GitHub Actions 运行工作流时,始终设置为 true。 您可以使用此变量来区分测试是在本地运行还是通过 GitHub Actions 运行。
GITHUB_ACTOR发起工作流程的个人或应用程序的名称。 例如,octocat
GITHUB_ACTOR_ID触发初始工作流运行的个人或应用的帐户 ID。 例如 1234567。 请注意,这与参与者用户名不同。
GITHUB_API_URL返回 API URL。 例如:http(s)://HOSTNAME/api/v3
GITHUB_BASE_REF工作流程运行中拉取请求的基本引用或目标分支的名称。 仅当触发工作流运行的事件是 pull_requestpull_request_target 时才设置此属性。 例如,main
GITHUB_ENV运行器上从工作流命令设置变量的文件的路径。 此文件的路径对于当前步骤是唯一的,并且在作业的每个步骤中都会更改。 例如,/home/runner/work/_temp/_runner_file_commands/set_env_87406d6e-4979-4d42-98e1-3dab1f48b13a。 有关详细信息,请参阅“GitHub Actions 的工作流命令”。
GITHUB_EVENT_NAME触发工作流程的事件的名称。 例如 workflow_dispatch
GITHUB_EVENT_PATH运行器上包含完整事件 web 挂钩负载的文件的路径。 例如 /github/workflow/event.json
GITHUB_GRAPHQL_URL返回 GraphQL API URL。 例如:http(s)://HOSTNAME/api/graphql
GITHUB_HEAD_REF工作流程运行中拉取请求的头部引用或来源分支。 仅当触发工作流运行的事件是 pull_requestpull_request_target 时才设置此属性。 例如 feature-branch-1
GITHUB_JOB当前作业的 job_id。 例如,greeting_job
GITHUB_OUTPUT运行器上从工作流命令设置当前步骤输出的文件的路径。 此文件的路径对于当前步骤是唯一的,并且在作业的每个步骤中都会更改。 例如,/home/runner/work/_temp/_runner_file_commands/set_output_a50ef383-b063-46d9-9157-57953fc9f3f0。 有关详细信息,请参阅“GitHub Actions 的工作流命令”。
GITHUB_PATH运行器上从工作流命令设置系统 PATH 变量的文件的路径。 此文件的路径对于当前步骤是唯一的,并且在作业的每个步骤中都会更改。 例如,/home/runner/work/_temp/_runner_file_commands/add_path_899b9445-ad4a-400c-aa89-249f18632cf5。 有关详细信息,请参阅“GitHub Actions 的工作流命令”。
GITHUB_REF触发工作流运行的分支或标记的格式完整的参考。 对于 push 触发的工作流,这是推送的分支或标记参考。 对于 pull_request 触发的工作流,这是拉取请求合并分支。 对于 release 触发的工作流,这是创建的发布标记。 对于其他触发器,这是触发工作流运行的分支或标记参考。 此变量仅在分支或标记可用于事件类型时才会设置。 给出的引用是完整的,这意味着对于分支,格式为 refs/heads/<branch_name>。 对于拉取请求事件,除非 pull_request_target,则为 refs/pull/<pr_number>/mergepull_request_target 事件具有基础分支中的 ref。 对于标记,格式为 refs/tags/<tag_name>。 例如,refs/heads/feature-branch-1
GITHUB_REF_NAME触发工作流运行的分支或标记的短参考名称。 此值与 GitHub 上显示的分支或标记名称匹配。 例如,feature-branch-1

拉取请求的格式为 <pr_number>/merge
GITHUB_REF_PROTECTED如果为触发工作流运行的 ref 配置分支保护 ,则为 true
GITHUB_REF_TYPE触发工作流运行的 ref 类型。 有效值为 branch or tag
GITHUB_REPOSITORY所有者和仓库名称。 例如,octocat/Hello-World
GITHUB_REPOSITORY_ID存储库的 ID。 例如 123456789。 请注意,这与存储库名称不同。
GITHUB_REPOSITORY_OWNER存储库所有者的名称。 例如,octocat
GITHUB_REPOSITORY_OWNER_ID存储库所有者的帐户 ID。 例如 1234567。 请注意,这与所有者名称不同。
GITHUB_RETENTION_DAYS工作流运行日志和项目保留的天数。 例如,90
GITHUB_RUN_ATTEMPT存储库中每次尝试运行特定工作流的唯一编号。 对于工作流程运行的第一次尝试,此数字从 1 开始,并随着每次重新运行而递增。 例如,3
GITHUB_RUN_ID存储库中每个工作流运行的唯一编号。 如果您重新执行工作流程运行,此编号不变。 例如 1658821493
GITHUB_RUN_NUMBER仓库中特定工作流程每个运行的唯一编号。 工作流首次运行时,此编号从 1 开始,并随着每次新的运行而递增。 如果您重新执行工作流程运行,此编号不变。 例如 3
GITHUB_SERVER_URLGitHub 服务器的 URL。 例如:https://HOSTNAME
GITHUB_SHA触发工作流的提交 SHA。 此提交 SHA 的值取决于触发工作流程的事件。 有关详细信息,请参阅“触发工作流的事件”。 例如,ffac537e6cbbf934b08745a378932722df287a53
GITHUB_STEP_SUMMARY运行器上包含工作流命令中的作业摘要的文件的路径。 此文件的路径对于当前步骤是唯一的,并且在作业的每个步骤中都会更改。 例如,/home/runner/_layout/_work/_temp/_runner_file_commands/step_summary_1cb22d7f-5663-41a8-9ffc-13472605c76c。 有关详细信息,请参阅“GitHub Actions 的工作流命令”。
GITHUB_TRIGGERING_ACTOR发起工作流运行的用户的用户名。 如果工作流运行是重新运行,则此值可能与 github.actor 不同。 即使启动重新运行的参与者 (github.triggering_actor) 具有不同的权限,任何工作流重新运行都将使用 github.actor 的权限。
GITHUB_WORKFLOW工作流的名称。 例如,My test workflow。 如果工作流文件未指定 name,则此变量的值是存储库中工作流文件的完整路径。
GITHUB_WORKFLOW_REF工作流的引用路径。 例如,octocat/hello-world/.github/workflows/my-workflow.yml@refs/heads/my_branch
GITHUB_WORKFLOW_SHA工作流文件的提交 SHA。
GITHUB_WORKSPACE运行器上步骤的默认工作目录,以及使用 checkout 操作时存储库的默认位置。 例如,/home/runner/work/my-repo-name/my-repo-name
RUNNER_ARCH执行作业的运行器的体系结构。 可能的值为 X86X64ARMARM64
RUNNER_DEBUG仅当启用调试日志记录并且始终具有值 1 时,才会进行此设置。 它可以用作指示器,以便在自己的作业步骤中启用更多调试或详细日志记录。
RUNNER_ENVIRONMENT执行作业的运行器的环境。 可能的值包括:对于 GitHub 提供的 GitHub 托管的运行器为 github-hosted,对于存储库所有者配置的自承载运行器为 self-hosted
RUNNER_NAME执行作业的运行器的名称。 此名称在工作流运行中可能并不唯一,因为存储库和组织级别的运行器可以使用同一名称。 例如 Hosted Agent
RUNNER_OS执行作业的运行器的操作系统。 可能的值为 LinuxWindowsmacOS。 例如 Windows
RUNNER_TEMP运行器临时目录的路径。 此目录在每个作业的开始和结束时都是空的。 注意,如果运行者的用户帐户没有权限删除这些文件,则不会被删除。 例如 D:\a\_temp
RUNNER_TOOL_CACHE包含 GitHub 托管运行器预安装工具的目录路径。 有关详细信息,请参阅“GitHub 托管的运行程序”。 例如 C:\hostedtoolcache\windows

注意

如果需要在作业中使用工作流运行的 URL,可以组合以下变量:$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID

配置变量的命名约定

以下规则适用于配置变量名称:

  • 只能包含字母数字字符([a-z][A-Z][0-9])或下划线 (_)。 不允许空格。
  • 不得以 GITHUB_ 前缀开头。
  • 不能以数字开头。
  • 引用时不区分大小写。 无论输入格式如何,GitHub 始终以大写形式存储机密名称。
  • 在创建的仓库、组织或企业中必须是唯一的。

环境变量命名约定

设置环境变量时,不能使用任何默认环境变量名称。 有关默认环境变量的完整列表,请参阅下面的 变量参考。 如果尝试重写其中一个默认变量的值,则会忽略赋值。

注意

通过在步骤中使用 run: env 并检查此步骤的输出,可以列出可用于工作流步骤的整个环境变量集。

配置变量优先级

如果具有相同名称的变量存在于多个级别,则级别最低的变量优先。 例如,如果组织级别变量的名称与存储库级别的变量相同,则存储库级别的变量优先。 同样,如果组织、存储库和环境都具有同名的变量,则环境级变量优先。

对于可重用工作流,将使用调用方工作流存储库中的变量。 存储库中包含被调用工作流的变量不可用于调用方工作流。

配置变量的限制

单个变量大小限制为 48 KB。

最多可以存储 1,000 个组织变量、每个存储库 500 个变量和每个环境 100 个变量。 组织和存储库变量的总大小限制为每个工作流运行 10 MB。

在存储库中创建的工作流可以访问以下数量的变量:

  • 如果存储库变量的总大小小于 10 MB,则最多 500 个存储库变量。 如果存储库变量的总大小超过 10 MB,则只有低于限制的存储库变量才可用(按变量名称的字母顺序排序)。
  • 如果存储库和组织变量的总大小小于 10 MB,则最多 1,000 个组织变量。 如果组织和存储库变量的总大小超过 10 MB,则只有低于该限制的组织变量将可用(在考虑存储库变量并按变量名称的字母顺序排序后)。
  • 最多 100 个环境级别变量。

注意

环境级别变量不计入 10 MB 的总大小限制。 如果超出了存储库和组织变量的总大小限制,但仍需要其他变量,则可以使用一个环境并在该环境中定义其他变量。

支持的上下文

你通常将使用 envgithub 上下文来访问工作流部分中的变量值,这些值是在作业发送给运行器之前处理的。

警告

请勿将 github 上下文打印到日志。 它包含敏感信息。

上下文使用案例示例
env引用工作流中定义的自定义变量。${{ env.MY_VARIABLE }}
github引用有关工作流程运行的信息和触发运行的事件。${{ github.repository }}