詹金斯在完成之前删除批处理文件

1 jenkins

我在 Server 2012 VM 上运行 Jenkins,我注意到我的一些项目在成功时被标记为不完整。我收到错误“找不到批处理文件”。据我所知,问题在于 Jenkins 为运行我的项目而创建的批处理文件在完成之前就被删除了。我正在从 Windows 7 系统迁移,但不会发生此问题。

我能够看到批处理文件的创建过程C:\Users\164016\AppData\Local\Temp\,然后在批处理文件完成之前将其删除。我什至可以在删除批处理文件之前打开它。

我尝试将“呼叫”命令放在命令的开头,但这并不能解决问题。

LaunchPad.exe 命令是一个定制脚本,旨在从 Excel vba 宏返回退出代码。

如果您有任何建议,请告诉我。

这是日志:

Building remotely on (164016) Remote Computer in workspace C:\TEMP\Jenkins Slave\workspace\Weekly Claim Edit WQ Age
[Weekly Claim Edit WQ Age] $ cmd /c call C:\Users\164016\AppData\Local\Temp\hudson3188220465265190989.bat

C:\TEMP\Jenkins Slave\workspace\Weekly Claim Edit WQ Age>"O:\Analytics Team\Tasks\Automation Components\Ryan\C#\Launch Pad\LaunchPad\LaunchPad\bin\Debug\LaunchPad.exe" "C:\Program Files (x86)\Quest Software\Toad for Data Analysts 2.7\Toad.exe" -batch=true "O:\Analytics Team\Tasks\Automation Components\Cindy\TAS\Claim_Edit_WQ_Age.tas" "O:\Analytics Team\Tasks\Claim Edit WQ Age\Claim_Edit_WQ_Age.xlsm"  

LaunchPad Start Time: 10.7.2014 9:49:10 AM
Time before Stopping Programs: 60 min

Program: "C:\Program Files (x86)\Quest Software\Toad for Data Analysts 2.7\Toad.exe"
Arguments: "-batch=true" "O:\Analytics Team\Tasks\Automation Components\Cindy\TAS\Claim_Edit_WQ_Age.tas" 
vba File: "O:\Analytics Team\Tasks\Claim Edit WQ Age\Claim_Edit_WQ_Age.xlsm"
vba Exit File: O:\Analytics Team\Tasks\Claim Edit WQ Age\Claim_Edit_WQ_Age.txt


Report Completed: 10/7/2014 9:50:28 AM 164016  O:\Reports\EPIC\Epic Claim Edit WQ\20141007 Claim Edit WQ Age.xlsx

Exiting LaunchPad: No Errors Detected: 0
The batch file cannot be found.
Build step 'Execute Windows batch command' marked build as failure
Finished: FAILURE
Run Code Online (Sandbox Code Playgroud)

小智 5

我有一个非常相似的问题。我正在 Jenkins 中运行一项工作,该工作正在调用专门的内部程序并导致“找不到批处理文件”错误。事实证明,del %TEMP%\*.* /q正在运行的批处理文件之一中有一个命令。这是在作业中删除所有 Jenkins 临时批处理文件并导致错误。

简单的解决方案是简单地重新定位 Jenkins 临时文件夹。这可以通过向 Jenkins 启动脚本添加命令行选项来完成。我的启动脚本如下所示:java -XX:MaxPermSize=1024m -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -Djava.io.tmpdir=C:\Users\!!My_user_name!!\Desktop\Jenkins_Temp -jar jenkins.war

我添加的重要部分是-Djava.io.tmpdir=C:\Users\!!My_user_name!!\Desktop\Jenkins_Temp选项(出于隐私原因删除了我的用户名。)这解决了问题。不要忘记将我的路径替换为您系统的有效路径名。

应将命令行选项添加到主站和从站启动脚本中,以便正确运行。