背景
我使用Jenkins文件在Jenkins中有3个版本:
client
ws
service
client
是一个NPM / NodeJS构建,其中Docker镜像运行HTTPD,前端客户端"已安装"并且ws
是后端Java Web服务(再次在Docker容器中)。两者都是由SCM提交触发的Multiflow管道。
service
构建将是一个构建,它可以创建一个服务模板,允许Docker镜像一起部署。
我遇到的问题不在于构建本身,而在于彼此之间的关系
开发人员将提交并且多分支管道将很乐意在后台构建,但是当对master进行合并(并且相应的构建成功)时,ws
或client
构建应该开始service
管道。
问题
service
管道在构建之前应该等待一段时间(5分钟?)。这将允许开发人员跨两个应用程序合并到master,并在尝试构建service
之前为CI提供构建两个应用程序的机会。
这样做的原因是有些故事涉及更新ws
和client
,这两个故事都需要正确测试(并传递!)。拥有service
管道等待将允许开发人员一次合并一个主服务器而不会构建尝试构建"过早地"并为詹金斯提供了完成两个版本的机会。
为了增加复杂性,应将ws
和client
的版本传递给服务版本。
我尝试过的事情
目前,service
版本是参数化版本,会提示ws
和client
的版本号。在client
或ws
构建时,它会使用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秒。
答案 0 :(得分:0)
我相信您的困惑是,您希望ws
和client
构建触发service
构建,但不等待service
构建开始执行。为此,您只需添加:
wait: false
建立步骤。来自此处的文档:https://jenkins.io/doc/pipeline/steps/pipeline-build-step/