jenkins - 如何减少詹金斯管道脚本的长度?
问题描述
我使用管道脚本在参数匹配时并行构建作业,但对于每个参数,它并行构建多达 10 到 15 个作业,因此代码长度接近 450 行。这是减少代码的任何方式或任何其他方式来配置和构建工作吗?
#!/usr/bin/env groovy
pipeline {
agent any
parameters {
choice(
choices: 'Job1\nJob2'\nJob3,
description: '',
name: 'Project'
)
}
stages {
stage ('callJob1') {
when {
expression { params.Project == 'Job1' }
}
steps{
build job: 'test1'
build job: 'test2'
.
.
.
.
.
}
}
stage('callJob2'){
when{
expression { params.Project == 'Job2'}
}
steps{
build job: 'test3'
build job: 'test4'
.
.
.
.
.
}
}
stage('callJob3'){
when{
expression { params.Project == 'Job3'}
}
steps{
build job: 'test5'
build job: 'test6'
.
.
.
.
.
}
}
}
}
解决方案
尝试在步骤中提取公共部分并在 jenkinsfile 中定义方法。jenkinsfile A 中定义的方法也可以在同一个项目的 jenkinsfile B 中调用。
前任:
def func() {
}
.
.
stages {
stage('Job1'){
steps {
script {
func()
}
}
}
stage('Job2'){
steps {
script {
func()
}
}
}
}
推荐阅读
- java - java中的jpanel.updateUI()和jpanel.repaint()和toolkit.getDefultToolkit().sync()有什么区别?
- python - 如何在破折号下拉组件中添加全选选项?
- node.js - 节点服务器和base64
- python - python中的修补和取消修补对象方法
- java - 这个程序如何逐步计算两个区间之间的 Armstrong 数?
- r - 自定义函数不适用于名为“x”的列,除非在 summarise() dplyr R 中由 .$x 指定
- arrays - 如何执行条件推送到阵列(在 Pine 脚本上)?
- javascript - not able to add one string and file to FormData in JS
- python - “client = commands.Bot(command_prefix = '.')” “commands” 表示“未定义”
- java - Maven 模块在 IntelliJ 中找不到依赖项