Jenkins Pipelines对下游构建的安静时期

时间:2017-02-23 10:21:34

标签: jenkins jenkins-pipeline

背景

我使用Jenkins文件在Jenkins中有3个版本:

  1. client
  2. ws
  3. service
  4. client是一个NPM / NodeJS构建,其中Docker镜像运行HTTPD,前端客户端"已安装"并且ws是后端Java Web服务(再次在Docker容器中)。两者都是由SCM提交触发的Multiflow管道。

    service构建将是一个构建,它可以创建一个服务模板,允许Docker镜像一起部署。

    我遇到的问题不在于构建本身,而在于彼此之间的关系

    开发人员将提交并且多分支管道将很乐意在后台构建,但是当对master进行合并(并且相应的构建成功)时,wsclient构建应该开始service管道。

    问题

    service管道在构建之前应该等待一段时间(5分钟?)。这将允许开发人员跨两个应用程序合并到master,并在尝试构建service之前为CI提供构建两个应用程序的机会。

    这样做的原因是有些故事涉及更新wsclient,这两个故事都需要正确测试(并传递!)。拥有service管道等待将允许开发人员一次合并一个主服务器而不会构建尝试构建"过早地"并为詹金斯提供了完成两个版本的机会。

    为了增加复杂性,应将wsclient的版本传递给服务版本。

    我尝试过的事情

    目前,service版本是参数化版本,会提示wsclient的版本号。在clientws构建时,它会使用quietPeriod触发service

        build job: 'service', parameters: [
        string(name: 'client', value: '1.0.0')], 
        quietPeriod: 60
    

    (其中1.0.0将替换为Jenkins内部版本号)

    但是,此实现会导致client / ws作业在触发service构建之前等待60秒。我想要的是service构建在开始构建之前等待60秒。

1 个答案:

答案 0 :(得分:0)

我相信您的困惑是,您希望wsclient构建触发service构建,但不等待service构建开始执行。为此,您只需添加:

wait: false

建立步骤。来自此处的文档:https://jenkins.io/doc/pipeline/steps/pipeline-build-step/