我有以下多分支管道架构的 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 节点上并行运行“构建”阶段,并仅在 Ubuntu 节点上运行“测试”阶段。
任何人都可以帮助我指定如何选择哪个阶段在哪些节点上运行。我在网上找到了一些解决方案,但他们建议重写构建阶段两次:一次针对 Red Hat 节点,另一次针对 Ubuntu 节点。有没有办法在不重复代码的情况下做到这一点?
非常感谢
当然,您可能希望以某种方式标记您的从属节点。基本上配置 Jenkins 上的所有节点并给它们指定有意义的名称。
stage('Build') {
steps {
node('os_linux') {
sh './build.sh'
}
node('os_redhat') {
sh './build.sh'
}
}
这将以串行方式运行任务,并且 Jenkinsfile 语法还支持在不同节点上并行执行命令。
Thanks,
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)