GitHub Actions 默认环境变量

默认环境变量

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。 例如:https://api.github.com
GITHUB_BASE_REF 工作流程运行中拉取请求的基本引用或目标分支的名称。 仅当触发工作流运行的事件是 pull_request 或 pull_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。 例如:https://api.github.com/graphql
GITHUB_HEAD_REF 工作流程运行中拉取请求的头部引用或来源分支。 仅当触发工作流运行的事件是 pull_request 或 pull_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>,对于拉取请求,其格式为 refs/pull/<pr_number>/merge,对于标签,其格式为 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进行求值的基于 SQL 语言的筛选器表达式。
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_URL GitHub 服务器的 URL。 例如:https://github.com
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 执行作业的运行器的体系结构。 可能的值为 X86X64ARM 或 ARM64
RUNNER_DEBUG 仅当启用调试日志记录并且始终具有值 1 时,才会进行此设置。 它可以用作指示器,以便在自己的作业步骤中启用更多调试或详细日志记录。
RUNNER_ENVIRONMENT 执行作业的运行器的环境。 可能的值包括:对于 GitHub 提供的 GitHub 托管的运行器为 github-hosted,对于存储库所有者配置的自承载运行器为 self-hosted
RUNNER_NAME 执行作业的运行器的名称。 此名称在工作流运行中可能并不唯一,因为存储库和组织级别的运行器可以使用同一名称。 例如 Hosted Agent
RUNNER_OS 执行作业的运行器的操作系统。 可能的值为 LinuxWindows 或 macOS。 例如 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

原文地址:

https://docs.github.com/zh/actions/writing-workflows/choosing-what-your-workflow-does/store-information-in-variables

THE END
喜欢就支持一下吧
点赞0 分享