我想从Jenkins运行一个Python脚本,脚本在设置一些环境变量后执行make -f命令。

0 投票
1 回答
849 浏览
提问于 2025-04-18 09:07

我需要从Jenkins运行一个Python脚本,这个脚本要做以下几件事:

- 获取某个版本
- 设置一些变量(比如:@set TOOL_ROOT=C:/gccnew/powerpc-ibm-eabi
@set path=%TOOL_ROOT%/bin;%path%)
- 运行make -f makeFile clean all .....

我需要知道这个过程是否失败,并且要让Jenkins知道结果。

我看过Popen和subprocess.check_output,但它们似乎不太好用:

cmd = """
@echo off &
@set TOOL_ROOT=C:/tool &
@set path=%TOOL_ROOT%/bin;%path% &
"""

#print cmd
makeCommand = cmd + "make -f makefile clean all strip"

# Run make file
makeResult = subprocess.check_output( makeCommand, shell=True)

我该如何设置变量,运行这个脚本,并得到一个合理的输出,以便让我知道它是否失败了呢?

谢谢。

1 个回答

0

在Jenkins中,构建步骤会根据返回的值来判断成功或失败。成功的返回值是0,而失败的返回值是非0的数字。
只要你在批处理文件中用0表示成功,用1表示错误退出,Jenkins就能知道该怎么处理。

在批处理文件中,调用一个进程的结果会存储在%ERRORLEVEL%这个变量里。
你可以在文件的最后一条命令后面简单地加一句exit %ERRORLEVEL%

需要注意的是,这样做只会返回最后一条命令的结果。你应该在运行的所有进程中加入一些逻辑来检查它们的状态。

希望这些信息对你有帮助。

撰写回答