我想将特定的管道集成到更通用的管道中。通用解析电子邮件通知,并从特定的SCM中签出项目。此时,它将运行在该项目中找到的Jenkinsfile。 这两个都是脚本化管道。
generic.jenkins文件:
node {
stage('Initial') {
echo 'Checking for new RRs and creating build sandbox'
}
stage('Calling specific') {
def jen = load "../specific.jenkinsfile"
}
stage('Cleanup') {
echo 'running cleanup'
}
}
specific.jenkins文件:
node() {
stage('Build') {
echo 'Build ...'
}
stage('Flash ') {
echo 'Flash ...'
}
stage('Test ') {
echo 'Test ...'
}
}
specific.jenkins文件中各阶段中的步骤会运行并打印这些步骤。
问题在于,特定Jenkinsfile中的阶段不会在BlueOcean Web界面的构建概述页面上显示为单独的阶段。相反,特定于 Calling 会在load
步骤返回之后累积所有步骤。 (虽然load
正在运行,所有阶段并排“扩展”。)在传统界面上不会发生这种情况。也许这是设计决定?
我如何才能像在经典网站上一样显示所有在BlueOcean中展开的内容?
答案 0 :(得分:0)
该解决方案比我预期的容易。
我从stage('Calling specific') {}
步骤中删除了load
,并从specific.jenkins文件中删除了node {}
。现在,可视化效果如预期。
# scripted pipeline
node {
stage('Initial') {
echo 'Checking for new RRs and creating build sandbox'
}
def jen = load "../specific.jenkinsfile"
stage('Cleanup') {
echo 'running cleanup'
}
}