对我有用的是:
- 添加一个根据当前主机名返回 true/false 的函数,具体取决于它是在生产环境中运行还是在测试环境中运行。例如,我将生产实例作为 jenkins.mydomain.com 运行,并将 jenkins 测试为 jenkins-test.mydomain.com。
- 基于此在作业定义中添加 if/then/else
例如像这样:
将其放入 JenkinsInstance.groovy:
import jenkins.model.*
// Representing the Jenkins server instance
class JenkinsInstance {
// Determine if we're executing on a Jenkins production instance.
static Boolean isProd() {
if (Jenkins.getInstance().getRootUrl() ==~ ".*jenkins\\.mydomain\\..*") {
return true
} else {
return false
}
}
}
让你的工作创建 DSL 脚本看起来像这样
import JenkinsInstance
freeStyleJob("myjobname") {
if (JenkinsInstance.isProd()) {
scm {
git {
...
}
}
} else {
scm {
}
}
}