qmake无法通过jenkins生成预期的makefile

时间:2018-06-28 14:51:36

标签: jenkins makefile jenkins-pipeline qmake

我试图在python中改编一个已经制作好的脚本,并且可以在本地计算机上运行(我称之为B机),我有几个命令,其中一个是QMAKE,它似乎无法正常运行jenkins声明式语法。

我在机器A中有jenkins,并且我正在通过ssh发送命令而没有任何问题,但是当我尝试通过jenkins脚本进行QMAKE时,与以前在本地完成的makefile相比,我得到了4条新行,并且全部使用 .qmake .stash 。我已经使用它来识别QMAKE路径并将其映射到jenkins脚本中:

QMAKE = '/Users/mactester/Qt/5.8/clang_64/bin//qmake'

这是我用来生成makefile的命令:

sh 'ssh $MACOS_SOFTWARETEST "cd Desktop/job_${JOB_NAME}_build_${BUILD_NUMBER}/firmware/helpers/connector/release; ${QMAKE} -config release ../Connector"'

我已经尝试通过先前路径上的该存储库在本地进行操作:

qmake -config release ../Connector

它会生成没有这4行的makefile。

我100%肯定通过jenkins使用的版本正确,

[jenkins_example_chameleon_macos] Running shell script
+ ssh mactester@192.168.1.7 '/Users/mactester/Qt/5.8/clang_64/bin//qmake -v'
QMake version 3.1
Using Qt version 5.8.0 in /Users/mactester/Qt/5.8/clang_64/lib

本地:

macos-softwaretester:release mactester$ qmake -v
QMake version 3.1
Using Qt version 5.8.0 in /Users/mactester/Qt/5.8/clang_64/lib

有人知道为什么通过詹金斯进行QMAKE时要添加这些行吗?

更新我

如果我直接在jenkins机器上启动生成的jenkins输出命令,则可以正确创建makefile。

UPDATE II

已过滤的jenkins文件和日志输出:https://gist.github.com/SipriusPT/77a0068570c5b94a33480509041567ad

请注意,我必须中止脚本执行,因为在该makefile上调用make时,脚本会进入循环。而且,jenkins脚本的qmake输出与直接在shell中使用时没有区别。

UPDATE III

我忘了说两行都提到.qmake.stash:

.../Connector/.qmake.stash
.qmake.stash \
.qmake.stash \
-$(DEL_FILE) .qmake.stash \

如果我删除了那些,我就能够成功运行make,但是随着这些进入循环。

UPDATE IV

我在这里没有提到,但是我先还原了虚拟机的快照,然后在jenkins中执行此操作之前启动了它,因为我没有想到这可能会导致任何问题,但是似乎我无法通过jenkins脚本使用QMAKE无需在还原后重新引导该系统。但是我真的不明白为什么,因为我没有更改jenkins脚本中的任何内容,并且如果我直接从jenkins SO Shell还原后启动这些命令,我​​将能够毫无问题地运行这些命令,并且makefile生成良好。在发布此替代方法之前,我已经对此问题进行了全面测试!

我真的不知道为什么会这样。

0 个答案:

没有答案