You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取GitHub Actions工作流运行位置及粒度相关技术问题

GitHub Actions运行位置获取与粒度说明

一、如何获取流水线的运行位置?

GitHub托管运行器

  • 直接使用内置环境变量 RUNNER_LOCATION,它返回的区域标识可直接映射到Azure Region(例如 us-east-1、westeurope)。示例用法:
    echo "当前运行位置: $RUNNER_LOCATION"
    
  • 辅助变量 RUNNER_NAME 可用于验证,但核心取位置信息用 RUNNER_LOCATION 即可。

自托管运行器

  • GitHub不会自动注入位置相关变量,需手动配置:
    • 方式1:在自托管运行器的本地 .env 文件中添加自定义变量,比如 SELF_HOSTED_LOCATION="eastus",工作流中直接引用该变量即可。
    • 方式2:注册自托管运行器时,通过 --env 参数注入位置变量,示例命令:
      ./config.sh --url https://github.com/你的组织/你的仓库 --token 你的注册令牌 --env SELF_HOSTED_LOCATION=eastus
      

二、运行位置的粒度说明

GitHub托管运行器

  • 同一作业内的所有步骤:完全在同一位置运行。作业会绑定到单个运行器实例,整个作业生命周期内实例位置不会变动,所有步骤都在该实例上执行。
  • 同一工作流内的不同作业:默认不保证同一位置。GitHub会根据系统负载自动分配可用区域的运行器,不同作业可能被分到不同区域。如果需要强制同一位置,可在作业的 runs-on 字段中指定区域限制,例如:
    jobs:
      build:
        runs-on: ubuntu-latest
        location: us-east-1
    

自托管运行器

  • 同一作业内的所有步骤:和托管场景一致,同一位置运行。作业绑定到单个自托管运行器实例,所有步骤都在该实例上完成。
  • 同一工作流内的不同作业:取决于你的运行器配置:
    • 如果所有作业都指定了同一个自托管运行器,或同一组位置相同的运行器,那么所有作业位置一致。
    • 如果作业指定了不同的运行器组(组内运行器分布在不同位置),或未做限制,作业可能被分配到不同位置的运行器,位置就会不同。

内容的提问来源于stack exchange,提问作者MilaHalina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 06:55:18