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

Windows环境下GitHub Actions上传Artifactory服务器报错求助

问题解决方法

问题根源

Windows环境下GitHub Actions默认使用PowerShell,此时curl是Invoke-WebRequest的别名,并非Linux系统中的curl工具,因此-u参数不兼容导致报错;切换到cmd环境后,变量语法、命令工具(如wc)和PowerShell完全不同,原有的$count变量无法识别。


方案1:保留PowerShell环境,使用真正的curl工具

修改Job配置,用curl.exe调用系统原生curl,同时调整行数统计的PowerShell语法:

...
      - name: Upload
        with:
          XXX_USER: ${{ secrets.XXX_USER }}
          XXX_TOKEN: ${{ secrets.XXX_TOKEN }}
        run: |
          # PowerShell中统计git log行数的正确写法
          $count = (git log --oneline | Measure-Object -Line).Lines
          # 调用真正的curl工具,参数和Linux下一致
          curl.exe -u${{ secrets.XXX_USER }}:${{ secrets.XXX_TOKEN }} -T xxx "你的Artifactory上传URL"
...

说明:GitHub Actions的Windows runner默认预装curl.exe,直接调用即可匹配预期参数;用Measure-Object -Line替代wc -l,更适配PowerShell的管道输出逻辑。


方案2:切换到cmd环境,适配cmd语法

如果必须使用cmd,调整变量定义和行数统计命令:

...
      - name: Upload
        with:
          XXX_USER: ${{ secrets.XXX_USER }}
          XXX_TOKEN: ${{ secrets.XXX_TOKEN }}
        shell: cmd
        run: |
          REM cmd中统计git log行数,用findstr替代wc
          for /f %%i in ('git log --oneline ^| findstr /c:"." /n ^| findstr /r "^[0-9]*:$"') do set count=%%i
          REM cmd中调用curl,参数逻辑不变
          curl -u${{ secrets.XXX_USER }}:${{ secrets.XXX_TOKEN }} -T xxx "你的Artifactory上传URL"
...

说明:cmd环境没有wc工具,用findstr实现行数统计;变量定义使用set count=...,后续引用时需用%count%格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 15:08:12