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

GitHub Actions替换set-output为$GITHUB_OUTPUT后仍报错求助

问题原因及解决方法

常见原因

  • 第三方Action依赖未更新:你使用的sqlfluff相关Action或其他依赖Action内部仍在调用已弃用的::set-output命令,并非你自己的脚本问题。
  • 旧版本Action缓存残留:GitHub会缓存Action的旧版本,即便你切换到新版本,缓存的旧代码仍可能被执行。
  • 间接调用的工具未排查:脚本中调用的旧版本sqlfluff或其他工具,内部输出了::set-output语句。
  • 遗漏未修改的步骤:工作流的其他环节(包括复用的子工作流)中仍存在::set-output,你仅修改了部分代码。

解决步骤

  1. 更新所有第三方Action
    查看工作流中用到的Action(如sqlfluff相关Action)的官方文档,确认是否有修复set-output弃用问题的新版本,将Action版本号更新至最新稳定版。示例:

    # 旧写法
    - uses: some/sqlfluff-action@v1
    # 新写法,替换为最新版本
    - uses: some/sqlfluff-action@v2.1.0
    
  2. 清理Action缓存
    进入仓库的Actions页面,点击右上角「Manage workflow runs」,选择「Caches」标签,找到相关缓存并删除。若使用了actions/cache,也可在工作流中添加清理步骤:

    - name: Clear old cache
      uses: actions/cache@v3
      with:
        path: |
          # 填写你的缓存路径
        key: ${{ runner.os }}-dummy-key
        restore-keys: |
          ${{ runner.os }}-dummy-key
    
  3. 升级sqlfluff版本
    旧版本sqlfluff可能内置适配旧GitHub Actions的输出逻辑,执行命令升级到最新版:

    pip install --upgrade sqlfluff
    

    若在工作流中安装,确保指定最新版本:

    - name: Install sqlfluff
      run: pip install sqlfluff==3.2.0
    
  4. 全局排查所有工作流文件
    在仓库中全局搜索::set-output,覆盖主工作流、子工作流、复用工作流文件,将所有实例替换为新的输出方式:

    • Linux/macOS runner 正确写法:
      echo "lint_errors=$errors" >> $GITHUB_OUTPUT
      
    • Windows PowerShell runner 正确写法:
      echo "lint_errors=$errors" | Out-File -FilePath $env:GITHUB_OUTPUT -Append -Encoding utf8
      
  5. 检查脚本调用的其他工具
    若你的脚本中调用了自定义脚本或其他工具,检查这些文件内部是否存在::set-output语句,一并替换为新的输出方式。

内容的提问来源于stack exchange,提问作者Dude

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 06:40:07