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

GitLab流水线使用mikefarah/yq镜像执行命令报错求助

问题原因及解决方法

核心原因

GitLab流水线中使用的mikefarah/yq:4.27.2 Docker镜像里,yq命令要求显式指定eval(或别名e)子命令才能执行表达式,而本地安装的yq版本可能默认将无前置子命令的调用自动识别为eval操作,这就导致了本地与流水线环境的执行差异,触发了unknown shorthand flag: 'c'的错误。

解决方法

修改流水线任务中的yq执行命令,添加e(eval的别名)子命令:

prepare-version:
  image: mikefarah/yq:4.27.2
  stage: prepare
  script:
   - ver=$(yq e '.version' versions.yml)
   - echo "version=${ver}" >> version.env
  artifacts:
   reports:
     dotenv: version.env

也可以使用完整的eval子命令写法:

ver=$(yq eval '.version' versions.yml)

修改后重新执行流水线,即可正常提取版本号并导出环境变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 16:15:31