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

GitHub Actions中actions/checkout@v2与v3的差异及v2适用场景问询

actions/checkout@v2 与 v3 的核心差异及v2适用场景

一、两者的主要差异

  • Node.js 运行环境:v2 基于 Node.js 12 构建,但 GitHub Actions 已不再支持 Node.js 12(2023年10月起停止维护);v3 升级为 Node.js 16,兼容当前所有官方 runner 环境,避免因 runtime 过时导致的报错。
  • 操作系统兼容性:v3 移除了对旧版操作系统的支持,比如 Ubuntu 16.04(Xenial)、Windows Server 2016 等;v2 仍可在这些旧环境中正常运行。
  • 安全与合规性:v3 的发布包采用了更严格的代码签名机制,且遵循 GitHub 最新的安全规范;v2 无此签名,GitHub 已标记 v2 为弃用状态,存在潜在安全风险。
  • 子模块处理优化:v3 修复了 v2 中部分子模块拉取的 bug(比如递归拉取时的权限问题),同时新增了更清晰的参数配置逻辑(如 submodules 参数的默认行为更明确)。
  • 权限默认值调整:v3 对 GITHUB_TOKEN 的默认权限做了更细粒度的限制,符合最小权限原则;v2 默认授予更宽泛的权限,可能存在过度授权问题。

二、仍需使用 v2 的场景

  • 依赖旧版 Node.js 环境:如果你的 workflow 中还有其他必须基于 Node.js 12 运行的 action,或者使用的自定义 runner 无法升级 Node.js 版本,只能继续用 v2。
  • 需要支持旧操作系统:若 CI/CD 流程仍依赖 Ubuntu 16.04、Windows Server 2016 等被 v3 放弃支持的系统,v2 是唯一可行选择。
  • 依赖 v2 特定行为:如果 workflow 依赖 v2 中某些未在 v3 保留的默认行为(比如旧版子模块拉取逻辑、特定参数默认值),且暂时无法调整代码适配 v3,可继续使用 v2。
  • 临时兼容性验证:在升级到 v3 的过程中,可保留 v2 作为对照,验证新流程是否与旧行为一致,确保平稳迁移。

内容的提问来源于stack exchange,提问作者J'e

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:27:16