我正在尝试将Jenkins脚本化管道用于我们的项目。 但是我发现丑陋的代码使很多缩进。
例如:
throttle('xxx') {
node('yyy') {
try {
stage('build') {
withEnv(['aaa=bbb']) {
if (foo == bar) {
dir('/my/dir') {
echo 'Building project'
}
}
}
}
} catch (Exception e) {
...
}
}
}
如果我使用更多if或closure或其他语句,则缩进级别会更深。有什么办法可以减少它?
谢谢
答案 0 :(得分:0)
与其他语言一样,如果压痕级别变得太深,请尝试提取 一些代码作为函数。
对于该示例,我可以将构建阶段提取为一个函数:
throttle('xxx') {
node('yyy') {
try {
stage('build') {
build()
}
} catch (Exception e) {
...
}
}
}
def build() {
withEnv(['aaa=bbb']) {
if (foo == bar) {
dir('/my/dir') {
echo 'Building project'
}
}
}
}
答案 1 :(得分:0)
您可以使用Declarative Pipeline syntax。我认为这是更好的可读性和更丑陋的方式。这是尝试
pipline {
agent any
envrionment {
aaa = "bbb"
}
stage("build") {
when { expression { foo == bar } }
steps {
throttle('xxx') {
dir('/my/dir') {
echo 'Building project'
}
}
}
post {
failure {
//...
}
}
}
}
但是我必须承认,缩进仍然很多。