shell yq无法识别gitlab-ci.yml中的“del()”命令

11dmarpk  于 2023-10-23  发布在  Shell
关注(0)|答案(1)|浏览(136)

我的yq有点在我的gitlab-ci. yaml发脾气。我的gitlab服务器的shell中的yq版本是4.16.2,我测试它的本地版本是4.35.2。
根据Official yq docs,我确实使用了正确的语法。我的意思是它在本地工作,它只是不工作在我的gitlab服务器上的某些原因eventho都有yq版本4.x.x
我的gitlab-ci代码如下所示:
$ if [ $AUTH_ENABLED = true ];
then yq eval -i '.data.auth =“'$'"' secret.yaml;
else yq -i 'del(.data)' secret.yaml; Fi
然后它抛出:* 错误:未知命令“del(.data)”for“yq”*
我不确定我是否错过了什么,但我就是不知道这里的问题是什么。

pprl5pva

pprl5pva1#

在mikefarah的yq版本v4.18.1中,“eval现在是默认命令,你可以不用它”。对于之前的版本,包括4.16.2,您必须提供eval(或e)命令。所以,改变

else yq -i 'del(.data)' secret.yaml

else yq -i eval 'del(.data)' secret.yaml

else yq -i e 'del(.data)' secret.yaml

就像您在then分支中执行的命令一样。

相关问题