Jenkins 詹金斯-一定时间后触发作业

Jenkins 詹金斯-一定时间后触发作业,jenkins,jenkins-plugins,Jenkins,Jenkins Plugins,我试图看看是否有一个插件,可以做什么,我想或什么我错过了关于詹金斯触发器。为了给你们一个我们想要做的例子,让我解释一下目前的情况 合并 Jenkins在合并时开始工作,在远程构建机器上进行更改 服务器已停止 建造、检查等已完成 服务器已启动 因此,上面的一切都很好,并且正在运行,但是我们要做的是在Jenkins选择合并后触发服务器停止并构建。这是一个大项目,有多条轨道,我们可以在10-30分钟内完成4-10次合并。所以很明显,我们不希望队列中有4-10个作业都运行相同的东西 那么,实现上述目标的

我试图看看是否有一个插件,可以做什么,我想或什么我错过了关于詹金斯触发器。为了给你们一个我们想要做的例子,让我解释一下目前的情况

  • 合并
  • Jenkins在合并时开始工作,在远程构建机器上进行更改
  • 服务器已停止
  • 建造、检查等已完成
  • 服务器已启动
  • 因此,上面的一切都很好,并且正在运行,但是我们要做的是在Jenkins选择合并后触发服务器停止并构建。这是一个大项目,有多条轨道,我们可以在10-30分钟内完成4-10次合并。所以很明显,我们不希望队列中有4-10个作业都运行相同的东西

    那么,实现上述目标的最佳方法是什么,即Jenkins触发器基于合并,例如等待x分钟,如果没有其他合并,则触发构建过程,如果新合并将计数器重置为x分钟并再次等待


    詹金斯有没有内置的插件或触发器,我们可以用它们来实现这一点?(我找不到任何明显的东西)或者这是我们需要参数化构建并运行一些脚本的情况吗?

    不知道有任何插件可以这样做。但是,如果您正在使用作业类型管道或愿意将其转换为管道,那么下面的Jenkins管道将起到作用:

    // Sleep for a certain time, in this case 20 seconds
    sleep(20);
    
    // Check if there is a newer build, if there is abort this one.
    if (currentBuild.nextBuild != null) {
      echo "Got newer build, aborting this one!"
      currentBuild.result = Result.NOT_BUILT;
      return;
    }
    
    // Do the rest of building here
    

    您可以从URL运行下面的命令,它可以达到这个目的。
    https:///build?delay=600sec

    很抱歉延迟接受,我不得不玩弄管道,但我还是设法用它们得到了我想要的东西。谢谢你的提示:)这并不是问题的答案。一旦你有足够的钱,你将能够;相反