我正在使用Pipeline插件运行Jenkins 2。我已经设置了一个多分支Pipeline项目,其中每个分支(master,develop等)在根目录中都有一个Jenkinsfile。设置这个很简单。但是,我不知道如何让每个分支定期运行(不是分支索引),即使代码没有更改。我需要在Jenkinsfile中放入什么才能启用定期构建?
bfhwhh0e1#
如果你使用声明式风格的Pipeline,并且只想在特定的分支上触发构建,你可以这样做:
String cron_string = BRANCH_NAME == "master" ? "@hourly" : "" pipeline { agent none triggers { cron(cron_string) } stages { // do something } }
在Jenkins Jira上发现
oipij1gg2#
如果你使用的是声明式的Jenkinsfile,那么你可以使用triggers指令。
pipeline { agent any triggers { cron('H 4/* 0 0 1-5') } stages { stage('Example') { steps { echo 'Hello World' } } } }
oknrviil3#
这对我很有效:
pipeline { triggers { cron(env.BRANCH_NAME == 'development' ? 'H */12 * * *' : '') } }
查看更多文章
ha5z0ras4#
我能够找到一个例子来说明这一点丢弃旧的构建,这也是我想要的。Jenkinsfile在jenkins-infra/jenkins.io:
Jenkinsfile
properties( [ [ $class: 'BuildDiscarderProperty', strategy: [$class: 'LogRotator', numToKeepStr: '10'] ], pipelineTriggers([cron('H/30 * * * *')]), ] )
jw5wzhpr5#
对于参数化周期性运行或调度触发器,可以使用如下。
triggers{ parameterizedCron env.BRANCH_NAME == "develop" ? '''H 03 * * * % buildSlave=vm1;testSlave=vm2;HYPERVISOR=vbox;VERSION=10.5.0.0 H 03 * * * % buildSlave=vm1;testSlave=vm2;HYPERVISOR=workstation;VERSION=10.5.0.0''' : "" }
juzqafwq6#
我遇到了上述解决方案的问题。我不是一个Jenkins向导,所以不确定我是否使用了旧的格式/语法或其他东西,但以下内容对我来说是有效的。
#!/usr/bin/env groovy properties( [ pipelineTriggers([ [ $class: 'TimerTrigger', spec: 'H 7,19 * * *' ] ]) ] )
确定自:https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/triggers/TimerTrigger.java
6条答案
按热度按时间bfhwhh0e1#
如果你使用声明式风格的Pipeline,并且只想在特定的分支上触发构建,你可以这样做:
在Jenkins Jira上发现
oipij1gg2#
如果你使用的是声明式的Jenkinsfile,那么你可以使用triggers指令。
oknrviil3#
这对我很有效:
查看更多文章
ha5z0ras4#
我能够找到一个例子来说明这一点丢弃旧的构建,这也是我想要的。
Jenkinsfile
在jenkins-infra/jenkins.io:jw5wzhpr5#
对于参数化周期性运行或调度触发器,可以使用如下。
juzqafwq6#
我遇到了上述解决方案的问题。
我不是一个Jenkins向导,所以不确定我是否使用了旧的格式/语法或其他东西,但以下内容对我来说是有效的。
确定自:https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/triggers/TimerTrigger.java