jenkins - 在我的 Jenkins 声明式管道中的多个代理上运行相同的任务
问题描述
我有一个像这样的块:
stage('Clone on win10x64-b-ut') {
agent {
node {
label 'win10x64-b-ut'
}
}
steps {
gitClone()
}
}
stage('Clone on win81x64-b-ut') {
agent {
node {
label 'win81x64-b-ut'
}
}
steps {
gitClone()
}
}
我想通过更改标签以有点像循环的方式运行相同的任务。我想尽可能地消除冗余。
解决方案
看看这个答案:https ://stackoverflow.com/a/48421660/9498358
如果您不想并行运行阶段(如在链接的答案中),您可以在脚本块内添加一个 for 循环,因此它看起来像这样:
def generateStage(nodeLabel) {
return {
stage("Clone on ${nodeLabel}") {
agent {
node {
label nodeLabel
}
}
steps {
gitClone()
}
}
}
}
// ...
stage('Clone') {
steps {
script {
def allNodes = [win10x64-b-ut', 'win81x64-b-ut']
for (def i = 0; i < allNodes[i]; i++) {
generateStage(allNodes[i])
}
}
}
}
推荐阅读
- javascript - 从 React 中的子组件更改 prop 后,等待从父组件更改 prop
- javascript - className 和 classList 的区别
- python - 在 pyspark 中的列表上应用逻辑运算符
- datagridview - DYNAMIC_DATA_OBJECT_GRID 应该使用什么值类型
- amazon-web-services - 如何在 Spring Cloud 功能中获取标头?
- reactjs - 如何在 React 中返回 Stencil VNode 元素?
- java - 如何在带有 twiterkit 的 android 应用程序中使用我的 twitter 帐户登录
- javascript - 如何为反应表中的每一列添加搜索按钮以进行列过滤?
- javascript - 如何在图表内和悬停时显示百分比?
- python - 在python中打开文本文件时如何解决\u202a错误?