jenkins - 显示加载的脚本化管道中的阶段
问题描述
我想将特定管道集成到更通用的管道中。通用的解析电子邮件通知并从特定的 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'
}
}
具体的.jenkins 文件:
node() {
stage('Build') {
echo 'Build ...'
}
stage('Flash ') {
echo 'Flash ...'
}
stage('Test ') {
echo 'Test ...'
}
}
specific.jenkins 文件中的阶段中的步骤会运行并打印这些步骤。问题是特定 Jenkinsfile 中的阶段不会在 BlueOcean Web 界面上的构建概述页面上显示为单独的阶段。相反,调用特定在步骤返回后累积所有load
步骤。(虽然load
正在运行,但所有阶段都是并排“扩展”的。)这不会发生在经典界面上。也许这是一个设计决定?
我怎样才能让它像在经典网站上一样在 BlueOcean 中显示所有扩展?
解决方案
解决方案比我预期的要容易。
我stage('Calling specific') {}
从步骤周围删除了load
,并node {}
从 specific.jenkins 文件中删除了 。现在可视化的行为符合预期。
# scripted pipeline
node {
stage('Initial') {
echo 'Checking for new RRs and creating build sandbox'
}
def jen = load "../specific.jenkinsfile"
stage('Cleanup') {
echo 'running cleanup'
}
}
推荐阅读
- javascript - 我怎样才能在我用对与错两个选项按钮提出的每个问题下得到答案?
- javascript - 将所有表格项目打印到控制台
- sql-server - 如何使用令牌或加密字符串连接到 MSSQL
- google-chrome - Chrome devtools,记住扩展元素和刷新时的选择
- java - UnreachableBrowserException - PC 更新后的 Selenium 脚本。更新前一切正常
- opencv - 运行带有外部库问题的 java jar 文件
- c# - 如何设置 QuartzNet 以执行重复的后台作业?
- gcc - 交叉编译器中包含文件夹的目的
- mediawiki - 禁止在 Mediawiki 中编辑源代码
- python - db.engine.echo 为真,即使 SQLALCHEMY_ECHO 为假