尝试在 Jenkins 中使用 BAT 多线程(自由式项目)

问题描述 投票:0回答:1

我们正在从 Windows 任务计划程序迁移到 Jenkins。

我们有一个名为“processes.bat”的 Windows BAT 文件,包含以下 3 行。

start /b cmd /k python my_python_code_01.py
start /b cmd /k python my_python_code_02.py
start /b cmd /k python my_python_code_03.py

3 行中的每行都同时运行,为每行创建一个单独的线程(感谢

start /b
)。 从 Windows 任务调度程序启动时(或者甚至只需双击 BAT 文件),这就像一个魅力。

但是,当我们从 Jenkins 启动相同的 BAT 文件时,它崩溃了, 因为一旦 3 个进程之一完成,整个 BAT 就会被 Jenkins 完成/杀死。

可能是 Jenkins 不支持

start /b
,或者应该使用稍微不同的语法? 或者使用并发/多线程(在一个构建中)的唯一方法是使用“parallel()”?

我们希望利用我们已经为多线程准备/测试的几个 BAT 文件。

这里有一些与我们在 Jenkins 上尝试的相关的细节:

  • 詹金斯版本 2.414.2
  • 使用的项目类型:“Freestyle Project”。
  • 项目配置:构建步骤-->执行Windows批处理命令-->“D:\some_folder\processes.bat”

我们希望从 Jenkins 启动相同的 BAT,并利用 BAT 文件中已编码的多线程。

任何帮助将不胜感激。 问候。

windows multithreading batch-file jenkins
1个回答
0
投票

经过多次尝试,使用this方法,以及网上找到的其他方法, 我们无法让它工作:Jenkins + Multitreads(在 BAT 文件内创建)。

最后,我们将BAT文件迁移到: Jenkins 管道声明性 Groovy 代码。

我们从以下链接中获取见解:

  • 并行使用:链接
  • 参数 - 外部:Jenkins Web 应用程序到 Groovy:link
  • 条件“when”和使用“本地”ENV 变量:link
  • 管道局部函数:link
  • 将参数/参数从 Groovy 传递到 BAT:link
  • BAT - 读取收到的参数/参数:link

问候。

© www.soinside.com 2019 - 2024. All rights reserved.