我的情况如下:回购中有三个分支:master,dev和staging。对于这些分支中的每个分支,我都有一份工作,在詹金斯的“构建分支”部分中进行了配置。原点/母版,原点/开发,原点/阶段。
每当通过存储库挂钩对存储库进行更改时,Bitbucket都会触发构建作业。(https://confluence.atlassian.com/display/BITBUCKET/Jenkins+hook+management)。
但是,当我努力掌握时,所有工作开始建立,其他两个工作也一样。
我希望仅当我按下master分支时才能构建Jenkins的“ master”作业。詹金斯将“开发”工作转移到开发分支。詹金斯将工作“分期”到开发阶段。
有没有办法控制这种行为?
我刚刚发现Bitbucket在推送到分支时不允许选择特定的挂钩。它只调用所有的钩子,然后启动所有Jenkins的工作。
我的解决方案是在安装了Jenkins的计算机上创建一个特定文件,并将Bitbucket挂钩设置为此文件。(例如html" target="_blank">http:// {jenkins
url}:{apache端口} /check.php)
请注意,此apache端口与Jenkins的端口不同,但与Apache的端口相同。就我而言,Jenkins的运行速度为8080,Apache的运行速度为7777。这样做是为了运行php脚本,但不在Jenkins的目录中。
由于Bitbucket挂钩发送了一个json文件,因此我能够在check.php中验证哪个分支已被推送。参考:POST挂钩管理
使用简单的“ if”进行验证后,我只是调用了正确的url以使用exec_curl开始正确的作业,例如:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, http://{jenkins url}:{jenkins port}/job/{job name}/build?token={job token});
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
还有,
有人能告诉我如何设置jenkins以基于特定标记的git repo进行构建吗?我已经做了一些搜索,并试图设置一个工作来构建一个特定的标签,请参阅:Jenkins Git插件:如何构建特定的标签?但我只能从主分支获取最新的提交。 这是给詹金斯的2.54分。我在SCM下设置了以下内容。 我允许所有分支触发这项工作。我有一个用jenkins-test1标记的提交。0,当我从gitlab测试webhook
不过,我仍然希望Jenkins担任指挥,这样我们的管道对不在我们团队中的人来说就更明显了。 有很多关于从DevOps触发Jenkins的信息,但我还没有找到任何支持我们需要的东西。这可能吗?你能分享一些例子吗?
我目前正在测试Jenkins2.0的管道方法,看看它是否适用于我所使用的构建环境。 另外,如果上游的一个分支发生更改,则不能为所有分支触发整个下游构建。这将创建太多的平等构建。
问题内容: 我有两个工作,JobA和JobB,JobA每天的运行时间为13.00,并记录一些付款。我希望JobA触发JobB来验证付款,仅当JobA成功且JobB需要在第二天04.00运行时 任何想法如何做到这一点? BR 问题答案: 我还没找到能开箱即用的东西。当然,您可以安排要定期构建的作业,但这不是您想要的全部。 您可以尝试以下两种想法之一(我自己也没有实现)。 将JobB设置为在凌晨4点定
我试图通过在提交钩子中使用这个URL来触发我的Jenkins项目 而且不会被触发。但当我在web浏览器中键入此URL时,它会触发我的生成。 当我在命令提示符下尝试时,出现了一个错误 错误404 谁能告诉我我做错了什么??
问题内容: 我试图通过在提交钩子中使用此URL来触发我的Jenkins项目 并且没有被触发。但是,当我在Web浏览器中键入此URL时,它将触发我的构建。 当我在命令提示符下尝试时,出现错误 错误404 例外: Stacktrace: 由Winstone Servlet Engine v0.9生成。 2014年4月22日星期二10:10:10 有人可以告诉我我在做什么错吗? 问题答案: 首先,按照E