如何在GHES上使用支持Node20的GitHub Actions upload-artifact@v3版本?
解决
actions/upload-artifact@v3的Node20兼容问题(适配GHES) 问题背景
使用actions/upload-artifact@v3时收到警告:
使用已弃用Node.js版本的Action将强制运行在node20上:
actions/upload-artifact@v3。
官方推荐升级到v4,但该版本在GitHub Enterprise Server(GHES)上不可用。尝试使用v3-node20或v3.2.1-node20标签时,出现解析错误:
无法解析Action
actions/upload-artifact@v3-node20,找不到版本v3-node20
可行解决方案
1. 直接指定支持Node20的v3版本提交哈希
带-node20的标签并未正式发布到GitHub Actions市场,但对应兼容Node20的代码已合并到v3分支的特定提交中。可直接使用该提交SHA引用:
- uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b
该提交对应v3.2.1版本的Node20兼容更新,既能消除弃用警告,也适配GHES环境。
2. 拉取v3分支的最新版本
目前actions/upload-artifact@v3分支已更新Node20支持,直接使用v3标签即可拉取兼容版本:
- uses: actions/upload-artifact@v3
若之前拉取的是旧缓存版本,可重新触发Workflow或添加缓存清理步骤以获取最新镜像。
3. 自行构建并托管适配版本
如果上述方法无效,可自行构建适配版本:
- 克隆
actions/upload-artifact仓库,切换到v3分支 - 修改Node.js版本配置为20,重新构建Action
- 将构建后的代码推送到私有GitHub仓库或GHES仓库
- 在Workflow中引用私有仓库路径:
- uses: your-username/upload-artifact@v3-node20
内容的提问来源于stack exchange,提问作者Kron
相关产品推荐
相关产品推荐

