运行GitHub Actions时如何解决actions/setup-node@v1的Node版本报错?
解决GitHub Actions中Node.js版本兼容报错的方法
问题原因
报错要求将actions/setup-node@v1更新为使用Node.js 16,核心原因是actions/setup-node@v1基于Node.js 12构建,而GitHub已停止对Node.js 12版本Action的支持——官方在2022年9月22日宣布,所有GitHub Actions将切换到Node.js 16运行环境,替代原有的Node.js 12,旧版基于Node.js 12的Action会被逐步淘汰。
具体修改步骤
- 升级setup-node版本:将
uses: actions/setup-node@v1改为uses: actions/setup-node@v3,v3版本原生支持Node.js 16,你当前配置里的node-version: '16.x'可以保留,确保安装的Node版本符合需求。 - 建议升级checkout Action:当前使用的
actions/checkout@master指向分支,版本不稳定,建议改为固定版本actions/checkout@v4,避免后续分支更新带来的兼容性问题。
修改后的完整Workflow配置
name: Twit Air Quality Workflow on: schedule: - cron: "30 6-23/3 * * *" jobs: build: name: Tweet air quality runs-on: ubuntu-latest steps: - name: Checkout Repo uses: actions/checkout@v4 - name: Use Node.js uses: actions/setup-node@v3 with: node-version: '16.x' - name: Install Dependencies run: npm ci - name: Run Twitter bot run: npm run twitter-quality env: TWITTER_API_KEY: ${{ secrets.TWITTER_API_KEY }} TWITTER_API_SECRET: ${{ secrets.TWITTER_API_SECRET }} TWITTER_API_ACCESS_TOKEN: ${{ secrets.TWITTER_API_ACCESS_TOKEN }} TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }}
额外说明
除了setup-node,其他基于Node.js 12的旧版Action也需要逐步升级到支持Node.js 16的版本,避免后续出现类似报错。
内容的提问来源于stack exchange,提问作者DT7
相关产品推荐
相关产品推荐

