Skip to content

GitHub Actions 接入昇腾算力指导

我们基于ARC实现 GitHub Action 任务在昇腾集群节点上执行。

Runner pod 类型及命名方式

昇腾集群创建 runner pod 执行 Github Action job。 我们提供如下类型的昇腾芯片。如果您未指定名称,我们将使用默认命名。

类型 架构 默认命名(x表示卡数)
Atlas 300I DUO arm64 linux-aarch64-310p-x
Atlas 800 A3 arm64 linux-aarch64-a3-x
Atlas 800 A2 arm64 linux-aarch64-a2-x 或 linux-aarch64-a2b3-x

Runner pod 资源配额

每个 runner pod 的 CPU 和内存配额按申请的 NPU 卡数等比例分配,具体如下:

Runner 名称 NPU 卡数 CPU(核) 内存
linux-aarch64-310p-1 1 11 40Gi
linux-aarch64-310p-2 2 22 80Gi
linux-aarch64-310p-4 4 44 160Gi
linux-aarch64-a3-2 2 39 64Gi
linux-aarch64-a3-4 4 78 128Gi
linux-aarch64-a3-8 8 156 256Gi
linux-aarch64-a3-16 16 312 512Gi
linux-aarch64-a2-1 1 23 64Gi
linux-aarch64-a2-2 2 46 128Gi
linux-aarch64-a2-4 4 92 256Gi
linux-aarch64-a2-8 8 184 512Gi
linux-aarch64-a2b3-1 1 23 64Gi
linux-aarch64-a2b3-2 2 46 128Gi
linux-aarch64-a2b3-4 4 92 256Gi
linux-aarch64-a2b3-8 8 184 512Gi

Runner pod 命名规范

Runner pod 名称由以下部分组成:

linux-aarch64-a2-x
^     ^       ^  ^
|     |       |  |
|     |       |  Number of NPUs Available
|     |       NPU Designator
|     Architecture
Operating System

接入流程图

                       开始
                         │
                         ▼
┌───────────────────────────────────────────────────────┐
│ 步骤 1: 选择安装范围和认证方式                        │
│ 你:确定是组织级还是仓库级安装                        │
│ 你:选择 GitHub App 或 PAT 认证                      │
│ 验收:明确安装方案                                    │
└────────────────────────┬──────────────────────────────┘
                         │
                         ▼
┌───────────────────────────────────────────────────────┐
│ 步骤 2: 准备权限                                       │
│ 你:获取组织或仓库管理权限                            │
│ 验收:具备必要权限                                    │
└────────────────────────┬──────────────────────────────┘
                         │
                         ├─────────┬─────────┬─────────┐
                         │         │         │         │
                         ▼         ▼         ▼         ▼
                    ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐
                    │组织+App│ │仓库+App│ │组织+PAT│ │仓库+PAT│
                    └────────┘ └────────┘ └────────┘ └────────┘
                         │         │         │         │
                         └─────────┴─────────┴─────────┴─────────┘
                         │
                         ▼
┌───────────────────────────────────────────────────────┐
│ 步骤 3: 安装 GitHub App 或创建 PAT                    │
│ 你:按照选择的方案执行安装或创建                      │
│ 验收:App 已安装或 PAT 已生成                        │
└────────────────────────┬──────────────────────────────┘
                         │
                         ▼
┌───────────────────────────────────────────────────────┐
│ 步骤 4: 联系我们激活                                   │
│ PAT 方式:发送邮件提供组织/仓库和 token               │
│ GitHub App 方式:安装后我们直接协助接入               │
│ 验收:Runner 部署确认                                 │
└────────────────────────┬──────────────────────────────┘
                         │
                         ▼
┌───────────────────────────────────────────────────────┐
│ 步骤 5: 验证 Runner 可用                              │
│ 你:在仓库 Settings 查看 Runner 状态                   │
│ 验收:Runner 状态显示 Online                          │
└────────────────────────┬──────────────────────────────┘
                         │
                         ▼
┌───────────────────────────────────────────────────────┐
│ 步骤 6: 在 Workflow 中使用 Runner                     │
│ 你:编写 workflow 并指定 Runner 标签                  │
│ 验收:Workflow 成功运行                               │
└────────────────────────┬──────────────────────────────┘
                         │
                         ▼
                     完成接入

安装

我们按照安装范围(组织/仓库)和接入权限(GitHub App/PAT)分别介绍安装方式。您可以选择其中一种方式安装,也可以搭配多种方式混合安装。 如果安装到组织,可以在仓库间复用 runner。并且可以通过 runner group 限制仓库范围。如果安装到仓库,只有单个仓库可以使用 runner。 GitHub App 权限更安全,但是需要组织管理者权限。如果觉得很难获取组织层面的许可,可以选择 PAT 权限。 如果您在安装/使用过程中有任何问题,请提出discussion

组织 仓库
GitHub App 安装方式 安装方式
PAT 安装方式 安装方式

通过 GitHub App 将 runner 安装到组织

准备工作

需要具备组织的管理权限。

可选:安装 runner group

被安装到组织的 runner 由 runner group 管理。 runner group 有3个配置选项以控制仓库的 workflow 是否可以使用 runner。 1. 仓库:选择组织下所有仓库 / 选择指定仓库。 2. 仓库访问权限:private / public。 3. workflow: 选择所有 workflow / 选择指定 workflow。 同时满足3个配置的仓库可以使用组织的 runner。

如果没有指定 runner group,则使用默认 runner group,其默认配置是: 1. 仓库:选择所有仓库。 2. 仓库访问权限: private。 3. workflow: 选择所有 workflow。

您可以使用并更改默认 runner group 来管理 runner。 如果默认 runner group 已经管理 runner 并且其权限与新 runner 不同,您可以参考新建 runner group创建自定义 runner group 来管理 runner。

安装 GitHub App

你需要做什么

浏览器访问apps/ascend-runner-mgmt并且点击Installalt text 选择组织,选择All repositories,点击Installalt text

怎么验证这步完成

  • GitHub App 已安装到目标组织

激活

我们做什么

GitHub App 安装完成后,我们团队将直接协助您完成接入,无需您提交任何申请。

怎么验证这步完成

  • 在仓库 Settings → Actions → Runners 中 Runner 状态显示 Online

通过 GitHub App 将 runner 安装到仓库

准备工作

需要具备组织及仓库的管理权限。

安装 GitHub App

你需要做什么

浏览器访问apps/ascend-runner-mgmt并且点击Installalt text 选择组织,选择Only select repositories,选择目标仓库,点击Installalt text

怎么验证这步完成

  • GitHub App 已安装到目标仓库

激活

我们做什么

GitHub App 安装完成后,我们团队将直接协助您完成接入,无需您提交任何申请。

怎么验证这步完成

  • 在仓库 Settings → Actions → Runners 中 Runner 状态显示 Online

通过 PAT 将 runner 安装到组织

准备工作

需要具备组织的管理权限。

可选:安装-runner-group

创建 token

你需要做什么

根据GitHub Docs创建token。 scopes 选择admin:org。 请注意token到期时间,token到期之后仓库不显示 Runner scale set,无法执行 workflow,需要重新生成有效token。 alt text

怎么验证这步完成

  • PAT 已创建并妥善保存

提交申请激活组织

你需要做什么

考虑到token保密需求,申请方式是向ascendinfra@huawei.com发送邮件。 邮件主题模板Request Ascend NPU Runners 邮件内容模板

org: my-org
token: ghp_xxx
expire-at: 30days

我们做什么

  • 收到申请后部署和配置 Runner

怎么验证这步完成

  • 邮件已发送并收到确认回复

通过 PAT 将 runner 安装到仓库

准备工作

需要具备仓库的管理权限。

创建 token

你需要做什么

根据GitHub Docs创建token。 scopes 选择repo。 请注意token到期时间,token到期之后仓库不显示 Runner scale set,无法执行 workflow,需要重新生成有效token。

alt text

怎么验证这步完成

  • PAT 已创建并妥善保存

提交申请激活仓库

你需要做什么

考虑到token保密需求,申请方式是向ascendinfra@huawei.com发送邮件。 邮件主题模板Request Ascend NPU Runners 邮件内容模板

repo: https://github.com/my-org/my-repo
token: ghp_xxx
expire-at: 30days

我们做什么

  • 收到申请后部署和配置 Runner

怎么验证这步完成

  • 邮件已发送并收到确认回复

使用

查看 Runner

你需要做什么

无论是将 runner 安装到仓库还是组织,启动 runner 的都是仓库里的workflow。进入您的仓库,依次点击组织的Settings, Actions, Runner。 - Runner scale set目录下是配置到仓库的 runner。 - Shared with this repository目录下是仓库可以访问的组织 runner。 - StatusOnline表示可以使用。 alt text

怎么验证 Runner 可用

  • Runner 状态显示为 Online(绿色圆点)

在 workflow 中使用 NPU Runners

你需要做什么

如果想在 job 中使用昇腾芯片,需要指定container.image字段,否则job不会调用NPU资源。 以下例子展示Github Action workflow如何使用NPU Runners。

name: Test NPU Runner
on:
  workflow_dispatch:
jobs:
  job_0:
    runs-on: linux-aarch64-a2-1
    container:
      image: ascendai/cann:latest

    steps:
      - name: Show NPU info
        run: |
          npu-smi info

怎么验证 Workflow 正常运行

  • Workflow 成功触发并运行
  • 日志中能看到 NPU 信息

常见问题

Q1:如何知道我的组织是否有权限安装 GitHub App?

需要组织的 Owner 权限。如果不确定,请联系你的组织管理员。

Q2:Runner 状态一直是 Offline 怎么办?

  • 检查 GitHub App 是否正确安装
  • 检查 PAT 是否有效且未过期
  • 确认 Runner Group 权限配置是否正确
  • 联系基础设施团队排查

Q3:workflow 一直在等待 Runner,无法运行?

  • 确认 runs-on 字段的值与申请的 Runner 名称完全一致
  • 检查 Runner 状态是否为 Online
  • 确认仓库有权访问该 Runner(Runner Group 配置)

Q4:PAT 过期了怎么办?

  • 重新生成 PAT
  • 通过邮件将新 Token 发送给基础设施团队
  • 等待基础设施团队更新配置

Q5:如何在多个仓库间共享 Runner?

  • 使用组织级安装(通过 GitHub App 或 PAT 安装到组织)
  • 通过 Runner Group 控制哪些仓库可以访问 Runner

反馈与支持

如果您在安装/使用过程中有任何问题,请提出discussion

提交时,请提供以下信息: - 项目名称和 Git 仓库地址 - 问题描述和错误信息 - 使用的安装方式(GitHub App 或 PAT)