我们有一个Code Composer Studio(Eclipse)项目,它使用CMAKE生成makefile和build。当项目手动导入到Jenkins从站(Win10 x64)并从命令行执行时,项目按预期编译,但在构建由Jenkins处理时失败。失败始终遵循相同的模式:从目标文件的路径中删除单个字母。例如,[Repo directory]/Cockpit_Scaling_and_Exceedance_data.dir
变为[Repo direcory]/Cockpit_Scaling_and_Exceedance_ata.dir
并且链接失败,因为它找不到引用的目标文件。
我确保帐户环境变量和系统环境变量之间没有差异,并且还将Jenkins服务配置为使用slave而不是SYSTEM上的admin帐户以消除Jenkins之间的许多差异和命令行尽可能。
该项目将使用我们的其他Jenkins奴隶(也是Win10 x64)成功构建,因此我们知道它不是Windows 10问题或我们的Jenkins配置存在问题。由于我找不到两台从机的配置之间的任何差异,我希望有人可以建议某处寻找这个路径问题。
答案 0 :(得分:1)
我从未发现为什么目标文件的路径被破坏了,但我确实通过Jenkins让项目在奴隶上成功构建。我所做的就是将所有系统环境变量更改为用户环境变量。我复制粘贴,所以我知道变量本身并没有改变。
我不知道为什么这会纠正这个问题,因为我在构建开始时插入了一个whoami
调用来确认Jenkins确实是以用户身份运行而不是System。我想从这一点开始,我的所有环境变量都将特定于用户,而不是SYSTEM ......
编辑:问题已经恢复。我在追踪此问题背后的原因方面没有取得进一步进展,但我发现在bash环境而不是Windows命令提示符下运行脚本时,我没有看到此症状。对我来说幸运的是脚本都是以这样的方式编写的,它们可以在两个环境中运行,所以我让我的同事使用bash代替它们。