配置云端开发环境
用 copilot-setup-steps 工作流预装依赖、验证初始化并启用 Git LFS。
This page has not been translated into English yet. The original Chinese version is shown below.
cloud agent 在临时 GitHub Actions 环境中工作。通过 setup steps 提前安装项目依赖,可以让它直接构建和测试,减少每次任务重新猜测安装步骤的时间。
文件与执行前提
在仓库中创建:
.github/workflows/copilot-setup-steps.yml文件必须包含唯一一个名为 copilot-setup-steps 的 job;它的 steps 在代理开始工作前执行。文件必须存在于默认分支,工作流才会触发。不要仅提交到临时分支后,就假定云端任务已经使用该配置。
可调整字段
官方只允许定制该 job 的以下设置,其他 job 设置会被忽略:
| 字段 | 用途 |
|---|---|
steps | 安装工具、依赖与其他初始化操作 |
permissions | 初始化步骤所需权限 |
runs-on | 选择支持的 runner |
services | 工作流服务容器配置 |
snapshot | 工作流 snapshot 配置 |
timeout-minutes | 超时配置,最大值为 59 |
完整字段含义还需遵循 GitHub Actions 语法。代理本身使用另外的 token;为 setup steps 设置 permissions 不等于直接改变代理的全部操作权限。
一个 Node.js 初始化示例
下面基于官方示例,仅保留手动验证触发器和安装步骤。Node.js 20 是该示例的选择,不是所有 cloud agent 项目的统一版本要求。
name: "Copilot Setup Steps"
on:
workflow_dispatch:
jobs:
copilot-setup-steps:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Set up Node.js
uses: actions/setup-node@v7
with:
node-version: "20"
cache: "npm"
- name: Install JavaScript dependencies
run: npm ci按项目实际语言、版本和锁文件修改依赖步骤。若不在 setup steps 中 checkout,Copilot 会在这些步骤结束后自行检出代码;若需要先安装仓库依赖,通常就需要如示例那样 checkout,并提供 contents: read。
actions/checkout 的 fetch-depth 值会被系统覆盖,以支持回退提交并控制风险,不能依赖自己设定的深度值始终有效。
验证与失败行为
将文件合入默认分支后,可以从 Actions 手动运行,检查初始化是否成功;也可按需要添加针对文件变更的 push 或 pull_request 触发器。只有配置对应触发器,才能依赖相应事件自动验证。
真实代理运行时,setup 过程会出现在会话日志中。某一步返回非零退出码后,剩余 setup steps 会被跳过,但代理仍会按当前环境状态开始工作。 因此初始化失败不等于整个任务已被阻止;应检查日志,而不是只看任务最终是否有输出。
Git LFS
使用 LFS 的仓库需要准备 Git LFS 并获取对象。官方给出的 checkout 配置为:
- uses: actions/checkout@v6
with:
lfs: true将其放到 copilot-setup-steps 的 steps 中,并保留所需读取权限。Runner 和 Windows 支持见运行器配置,私有依赖凭据见Secrets 与变量。
与 code review 的关系
Copilot code review 默认复用 copilot-setup-steps.yml,也支持专门的 copilot-code-review.yml 来独立配置环境。不要假定修改共享 setup 文件只影响 cloud agent。
代码审查的平台范围应单独按审查 runner核对,不能由 cloud agent 的 Windows 支持推断。