我有以下多分支管道体系结构的Jenkinsfile
#!/usr/bin/groovy
pipeline {
agent {
node {
label 'ubuntu'
customWorkspace "/src/$BUILD_NUMBER"
}
}
environment {
SRC_DIR = "$WORKSPACE"
BUILD_DIR="/build/$BUILD_NUMBER"
}
stages {
stage('Build') {
steps {
dir(BUILD_DIR) {
sh '$SRC_DIR/build.sh'
}
}
}
stage('Test') {
steps {
dir(BUILD_DIR) {
sh '$SRC_DIR/test.sh'
}
}
}
}
}
我试图在Ubuntu和Red Hat节点上并行运行“ Build”阶段,并且仅在Ubuntu节点上运行“ Test”阶段。
谁能帮助我指定如何选择在哪个节点上运行哪个阶段。我在网上找不到很少的解决方案,但他们建议重写构建阶段两次:一次用于Red Hat节点,另一个用于Ubuntu节点。没有代码重复,没有办法做到这一点吗?
非常感谢你
当然,您希望以某种方式标记您的从属节点。基本上在Jenkins上配置所有节点,并为其赋予有意义的名称。
stage('Build') { steps { node('os_linux') { sh './build.sh' } node('os_redhat') { sh './build.sh' } }
这将以串行方式运行任务,并且Jenkinsfile语法还支持在不同节点上并行执行命令。
谢谢,