jenkins - 如何将 Cmd 行输出定向到 jenkins
问题描述
Stage("execution") {
Steps {
bat 'start cmd.exe /c c:\\users\\doc\\sample.bat'
}
}
上面的脚本只是打开cmd
提示并执行它。它没有获取执行的输出。即使执行失败,该阶段也显示为成功,并进入下一个阶段进行部署。我想开发它,以便cmd
詹金斯将提示中的输出作为输入,并且阶段应该继续。如果阶段在执行期间失败,阶段应该显示失败,如果执行成功,阶段应该在 Jenkins 中显示成功。任何人都可以帮忙吗?
另一个问题:如果批处理文件位于Git中,如何在上面的脚本中给出路径?
解决方案
使用该start
命令,您正在创建一个 Jenkins 无法跟踪的新分离控制台进程。
改为这样做:
bat 'call "c:\\users\\doc\\sample.bat"'
这将在与当前脚本相同的环境中运行批处理文件并等待批处理文件结束。Jenkins 将能够通过批处理文件的退出代码捕获标准输出并检测错误。
您可以编写@call
以从输出中隐藏命令行。
推荐阅读
- sql - 从 Google Ads BigQuery 数据传输中提取/取消嵌套数组
- windows - 当 MB_ICONWARNING 与 MB_OK 结合使用时,MessageBox API 会导致访问冲突和崩溃
- stream - 在 Flink 上重新调整水印
- ios - 可设计按钮不显示资产文件夹中的图像
- java - 尝试在放心发送图像,为什么没有发送任何内容?,即使没有异常
- python - tensorflow saved_model 模型签名中的未知输入
- caching - Typo3 v10 如何解决 NFS 设置中的缓存问题?
- unit-testing - 如何对基于 Java Reflective API 的代码进行测试?
- python - Flask - 如何使用工厂模式和 init_app() 获取范围内的组件
- google-cloud-platform - 测试 Google 数据库迁移服务作业时出现“内部错误”