詹金斯没有构建

时间:2018-01-30 07:43:03

标签: jenkins jenkins-plugins

我制作了一个简单的程序,需要每小时执行一次。我已经设置Jenkins每小时运行并在构建的后一步运行shell命令。

问题是只有在GIT上更改代码时才需要构建。如果没有任何改变,我只想在没有新版本的情况下运行后期步骤。

有什么方法可以解决这个问题吗?我只是找不到任何插件来处理这个问题。

  • git change - >构建 - >跑一步。
  • git not change - >构建X - >每小时运行一次步骤

提前致谢。

-edit -

这个简单的程序目前每小时都在我的Jenkins上运行,如下所示。

触发器(每小时) - >从Github获取代码 - >构建 - >运行post step(执行三个shell命令)

但是!我想换到

触发器(每小时) - > 从Github获取代码 - > build - > 运行post step(执行三个shell命令)
+
触发器(当Github代码改变时) - >从Github获取代码 - >构建 - >运行post step(执行三个shell命令)

1 个答案:

答案 0 :(得分:2)

如果我正确理解了您的要求,您可以将您的工作设置为使用Git钩子构建Git push to master(或任何分支),同时保持每小时构建并在构建原因的代码中添加一个检查。类似的东西(这是在执行shell步骤中):

if [ $BUILD_CAUSE != 'TIMERTRIGGER' ]; then
  build your code
fi

execute 3 commands

这种方式由计时器触发的构建将跳过代码构建,但手动或钩子触发器不会。

如果您使用的是管道,则可以使用currentBuild.rawBuild.getCauses()[0].getShortDescription().contains('text identifying git trigger')获得类似的结果。

编辑:使用Conditional BuildStep插件的替代解决方案。

使用触发器添加条件步骤(单个)作为构建原因SCM触发器作为构建的第一步,并添加第二个构建步骤以运行shell命令。请参阅附带的屏幕截图(在图像中突出显示Post构建操作选项卡,但这在“构建”部分中完成)。

enter image description here