如何为分支主节点上的标记提交触发GitLab管道?

如何为分支主节点上的标记提交触发GitLab管道?,gitlab,gitlab-ci,gitlab-ci-runner,gitlab-api,Gitlab,Gitlab Ci,Gitlab Ci Runner,Gitlab Api,我想在推送到分支主节点后触发管道。尽管如此,我不确定它是否有效,因为到目前为止我还没有成功 .gitlab ci.yml: 变量: JEKYLL_环境:生产 立法会全体议员:C.UTF-8 阶段: -发表 -释放 #-部署 页: 阶段:出版 图片:ruby 规则: -如果:$CI_COMMIT_BRANCH==“master”&&$CI_COMMIT_TAG!="" 时间:总是 在脚本之前: -gem安装绑定器 -捆绑安装 脚本: -bundle exec jekyll build-d publ

我想在推送到分支主节点后触发管道。尽管如此,我不确定它是否有效,因为到目前为止我还没有成功

.gitlab ci.yml

变量:
JEKYLL_环境:生产
立法会全体议员:C.UTF-8
阶段:
-发表
-释放
#-部署
页:
阶段:出版
图片:ruby
规则:
-如果:$CI_COMMIT_BRANCH==“master”&&$CI_COMMIT_TAG!=""
时间:总是
在脚本之前:
-gem安装绑定器
-捆绑安装
脚本:
-bundle exec jekyll build-d public
人工产品:
路径:
-公开的
发布:
阶段:发布
图片:registry.gitlab.com/gitlab org/release cli:latest
规则:
-如果:$CI_COMMIT_BRANCH==“master”&&$CI_COMMIT_TAG!=""
时间:总是
脚本:
-回显“正在运行发布作业”
发布:
名称:'Release$CI\u COMMIT\u标记'
description:'使用gitlab-ci.yml创建$额外描述'
标记名称:“$CI\u COMMIT\u标记”
参考:“$CI\u COMMIT\u标记”
人工产品:
路径:
-公开的
过期时间:1天
我所尝试的:

`-if:'$CI_COMMIT_标记&&$CI_COMMIT_分支==“master”'`

尽管如此,最后一条规则根本不会触发管道。

您可以检查提交是否有标记

rules:
  - if: $CI_COMMIT_BRANCH == "master" && $CI_COMMIT_TAG != ""
    when: manual
或者,如果您的标记遵循的约定类似于
tag-1
tag-2
,请使用正则表达式模式

rules:
  - if: $CI_COMMIT_BRANCH == "master" && $CI_COMMIT_TAG =~ /tag\-[0-9]/
    when: manual

它适合出版工作,谢谢你!尽管如此,它对发布版不起作用
ref:'$CI\u COMMIT\u TAG'
这个变量似乎没有定义,因为日志显示它缺少ref值。每当我在发布作业中提到
$CI\u COMMIT\u TAG
时,我都会收到一个不同的错误,具体取决于键。对于ref键,我得到了错误422:ref没有指定。奇怪的是,像这样使用这个变量在更早的时候工作得很好。@jurordrained您的发行版是否在标记作业之后运行?如果这些作业是在同一管道中定义的,您可以通过工件在它们之间共享变量。如果您不介意,我已经更新了
.gitlab ci.yml
代码。