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

时间:2014-06-09 10:17:13

标签: python batch-file jenkins

来自Jenkins我需要运行一个Python脚本:

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

我需要知道它是否失败并让詹金斯知道它。

我一直在看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 :(得分:0)

Jenkins构建步骤期望从过程返回的值成功,并且失败为非零值。
只要退出批处理文件,其中0表示成功,1表示错误,Jenkins将知道如何结束。

在批处理文件中,调用流程的结果位于%ERRORLEVEL%变量中。
您可以在文件中的最后一个命令后添加退出%ERRORLEVEL%

请注意,这将仅返回最后一个命令的结果。你应该在检查你运行的所有进程时加入一些逻辑。

我希望这会有所帮助。