【发布时间】:2021-11-29 02:09:20
【问题描述】:
我正在尝试让我的 gitlab 管道自动标记 master 分支,但没有成功。
我想做的事
由于该项目是一个作曲家包,我想做的是从composer.json文件中获取版本号,将其存储在一个变量中,然后将此变量与git一起使用来标记分支。
我在做什么
这是我的.gitlab-ci.yml 的管道作业部分:
tagging:
stage: publish
image: alpine
only:
- master
script:
- version=$(cat composer.json | grep version | grep -Eo "[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+")
- git tag "$(version)"
- git push --tags
错误
我实际上无法判断问题是什么,因为 gitlab 作业输出中没有显示输出,如下图所示
【问题讨论】:
-
之前可以
cat composer.json进行调试。我认为 grep 命令失败是因为找不到文件或模式。 -
在之前添加
set -xv命令可能有助于调试。 -
最后用
jq代替grep解析JSON 文件怎么样?
标签: continuous-integration gitlab-ci git-tag