"Build Periodically" 在 Jenkins 中使用多分支管道
"Build Periodically" with a Multi-branch Pipeline in Jenkins
我正在 运行使用 Pipeline 插件安装 Jenkins 2。我已经设置了一个多分支管道项目,其中每个分支(master、develop 等)在根目录中都有一个 Jenkinsfile。设置起来很简单。但是,即使代码没有更改,我也不知道如何让每个分支 运行 定期(不是分支索引)。我需要在 Jenkinsfile 中放入什么才能启用定期构建?
我找到了一个示例来说明丢弃旧版本,这也是我想要的。
Jenkinsfile
in jenkins-infra/jenkins.io:
properties(
[
[
$class: 'BuildDiscarderProperty',
strategy: [$class: 'LogRotator', numToKeepStr: '10']
],
pipelineTriggers([cron('H/30 * * * *')]),
]
)
如果您使用的是声明式 Jenkinsfile,那么您可以使用 triggers 指令。
pipeline {
agent any
triggers {
cron('H 4/* 0 0 1-5')
}
stages {
stage('Example') {
steps {
echo 'Hello World'
}
}
}
}
如果您使用声明式流水线并且只想在特定分支上触发构建,您可以这样做:
String cron_string = BRANCH_NAME == "master" ? "@hourly" : ""
pipeline {
agent none
triggers { cron(cron_string) }
stages {
// do something
}
}
发现于 Jenkins Jira
这对我有用:
triggers {
cron(env.BRANCH_NAME == 'development' ? 'H */12 * * *' : '')
}
在此查看更多内容 article
对于参数化的定期运行或计划的触发器,可以按如下方式使用。
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''' : ""
}
我在使用上述解决方案时遇到了问题。
我不是 Jenkins 向导,所以不确定我是否使用旧的 format/syntax 或其他东西,但以下对我有用。
#!/usr/bin/env groovy
properties(
[
pipelineTriggers([
[
$class: 'TimerTrigger',
spec: 'H 7,19 * * *'
]
])
]
)
我正在 运行使用 Pipeline 插件安装 Jenkins 2。我已经设置了一个多分支管道项目,其中每个分支(master、develop 等)在根目录中都有一个 Jenkinsfile。设置起来很简单。但是,即使代码没有更改,我也不知道如何让每个分支 运行 定期(不是分支索引)。我需要在 Jenkinsfile 中放入什么才能启用定期构建?
我找到了一个示例来说明丢弃旧版本,这也是我想要的。
Jenkinsfile
in jenkins-infra/jenkins.io:
properties(
[
[
$class: 'BuildDiscarderProperty',
strategy: [$class: 'LogRotator', numToKeepStr: '10']
],
pipelineTriggers([cron('H/30 * * * *')]),
]
)
如果您使用的是声明式 Jenkinsfile,那么您可以使用 triggers 指令。
pipeline {
agent any
triggers {
cron('H 4/* 0 0 1-5')
}
stages {
stage('Example') {
steps {
echo 'Hello World'
}
}
}
}
如果您使用声明式流水线并且只想在特定分支上触发构建,您可以这样做:
String cron_string = BRANCH_NAME == "master" ? "@hourly" : ""
pipeline {
agent none
triggers { cron(cron_string) }
stages {
// do something
}
}
发现于 Jenkins Jira
这对我有用:
triggers {
cron(env.BRANCH_NAME == 'development' ? 'H */12 * * *' : '')
}
在此查看更多内容 article
对于参数化的定期运行或计划的触发器,可以按如下方式使用。
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''' : ""
}
我在使用上述解决方案时遇到了问题。
我不是 Jenkins 向导,所以不确定我是否使用旧的 format/syntax 或其他东西,但以下对我有用。
#!/usr/bin/env groovy
properties(
[
pipelineTriggers([
[
$class: 'TimerTrigger',
spec: 'H 7,19 * * *'
]
])
]
)