Gitlab 9.5构建触发器未按预期工作

Gitlab 9.5构建触发器未按预期工作,gitlab,gitlab-ci,Gitlab,Gitlab Ci,我们现在使用的是Gitlab EE 9.5.0-EE 36112e7 我对构建触发器有疑问。我有一个设置,每周通过Jenkins使用curl触发器触发一个构建。此作业通常显示在管道下的标签API,当我单击它时,我可以看到右栏中的任何变量 然而,在这个最新的Gitlab版本中,这种情况不再发生了。任何这样的触发作业都没有像以前那样被标记,我也没有看到变量。因此,以下逻辑,例如,从不触发(主要是因为未设置CI\u PIPELINE\u tricked): 脚本: - | 如果[“$CI_PIPELI

我们现在使用的是
Gitlab EE 9.5.0-EE 36112e7

我对构建触发器有疑问。我有一个设置,每周通过Jenkins使用
curl
触发器触发一个构建。此作业通常显示在
管道下的标签
API
,当我单击它时,我可以看到右栏中的任何变量

然而,在这个最新的Gitlab版本中,这种情况不再发生了。任何这样的触发作业都没有像以前那样被标记,我也没有看到变量。因此,以下逻辑,例如,从不触发(主要是因为未设置
CI\u PIPELINE\u tricked
):

脚本:
- |
如果[“$CI_PIPELINE_触发”=“true”];然后
如果[“!=”詹金斯“]触发“$BUILD”];然后
echo“此生成似乎不是由Jenkins触发的。正在跳过…”
出口0;
fi;
fi;
知道为什么吗

下面是我在Jenkins中使用的
curl
触发器:

curl-kf-X POST\
-F token=“$token”\
-F ref=“master”\
-F“变量[构建由]=Jenkins触发”\
-F“变量[日期]=$(日期+'%Y%m%d')”\
"https://gitlab.host.com/api/v4/projects//trigger/pipeline"
上面的
标记是该项目的
/settings/ci_cd
页面中的触发标记

基本上,即使上面的命令启动一个新的构建,它也不会被视为触发的构建。我甚至重新生成了一个令牌用于Jenkins脚本,但这也没用

这种完全相同的设置以前也在工作

编辑1:

因此,我更新了CI中的
脚本
,以便在触发时回显这些变量,即使
$BUILD\u triggered\u BY
变量以预期值出现,但却是
$CI\u PIPELINE\u triggered
变量为空,导致我的逻辑出现问题。这可能解释了为什么API在Pipelines视图中将构建标记为


我仍然不确定原因:(.

我也遇到了一些与触发器有关的意外行为。 尝试使用表单URL编码而不是多部分表单:

curl -vk \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "token=$TOKEN&ref=master&variables[BUILD_TRIGGERED_BY]=Jenkins7&variables[DATE]=$(date +'%Y%m%d')" \
https://gitlab.host.com/api/v4/projects/<id>/trigger/pipeline
curl-vk\
-H“内容类型:应用程序/x-www-form-urlencoded”\
-d“令牌=$token&ref=主变量和变量[BUILD\u TRIGGERED\u BY]=Jenkins7&variables[DATE]=$(日期+“%Y%m%d”)”\
https://gitlab.host.com/api/v4/projects//trigger/pipeline
我使用GitLab Community Edition 9.3.9,然后变量再次出现。
但是,这仍然没有用“API”标记管道运行-这似乎只适用于。

很抱歉给您带来不便。此错误发生在9.5中,因为我们更改了存储触发变量的位置以获得更好的体系结构。我们已经修复了此问题,修补程序将进入10.0

我们还考虑下一个补丁发布(9.5。x)来修复这个回归。用户不想立即升级到10。


这是CE repository上的问题跟踪程序;

感谢您的评论@dosuken123。由于发生了这种情况,我们升级到了
10.x
,我可以确认问题已得到解决:)!