GitHub Actions未指定Node版本时默认使用什么版本?为何会突然升级?
问题解答
为什么GitHub Actions会突然切换使用Node.js 16版本
这个变动的核心原因是GitHub对托管运行器的预装软件做了版本迭代:GitHub托管的公共运行器(比如ubuntu-latest、windows-latest等默认镜像)会定期将预装的Node.js默认版本更新为当前官方维护的LTS(长期支持)版本,当Node.js 16正式成为LTS版本后,GitHub就把运行器默认预装的Node.js大版本从14切换为了16,未指定版本的工作流就会自动使用新的默认版本。
未指定Node版本时GitHub Actions判定所用Node版本的规则
分两种场景:
- 如果你没有在工作流中添加
actions/setup-node步骤,直接调用Node.js相关命令,会直接使用你选择的运行器镜像预装的默认Node.js版本,该版本会随GitHub对运行器的迭代同步更新,不会固定。 - 如果你添加了
actions/setup-node步骤但没有指定node-version参数:actions/setup-node@v2及更早版本会优先使用运行器预装的最新LTS版本,若运行器内没有对应版本才会主动拉取最新LTS版安装;actions/setup-node@v3及更高版本已经取消了默认版本逻辑,不指定node-version会直接抛出错误,要求用户明确声明需要的Node.js版本。
内容的提问来源于stack exchange,提问作者sho
相关产品推荐
相关产品推荐

