詹金斯从文件路径中删除一封信

Jenkins drops a letter from file paths

我们有一个使用 CMAKE 生成 makefile 和构建的 Code Composer Studio (Eclipse) 项目。当项目手动导入到 Jenkins 从站 (Win10 x64) 并从命令行执行时,项目按预期编译,但当构建由 Jenkins 处理时失败。失败始终遵循相同的模式:单个字母从目标文件的路径中删除。例如,[Repo directory]/Cockpit_Scaling_and_Exceedance_data.dir 变为 [Repo direcory]/Cockpit_Scaling_and_Exceedance_ata.dir 并且链接失败,因为它找不到引用的目标文件。

我确保帐户环境变量和系统环境变量之间没有差异,并且还将 Jenkins 服务配置为在从属服务器上使用管理员帐户而不是 SYSTEM 以消除尽可能多的差异尽可能在 Jenkins 和命令行之间。

该项目将使用我们的其他 Jenkins 从站之一(也是 Win10 x64)成功构建,因此我们知道这不是 Windows10 问题或我们的 Jenkins 配置问题。由于我找不到两台从属机器的配置之间的任何差异,我希望有人可以建议在某个地方查找此路径问题。

我从来没有发现为什么目标文件的路径被破坏了,但我确实通过 Jenkins 在从站上成功构建了项目。我所做的就是将所有系统环境变量更改为用户环境变量。我复制粘贴,所以我知道变量本身没有改变。

我不知道为什么这更正了这个问题,因为我在构建开始时插入了一个 whoami 调用以确认 Jenkins 确实是 运行ning 作为用户而不是系统。我想从这一点来看,我所有的环境变量都将特定于用户而不是 SYSTEM...

编辑:问题又来了。我在追查此问题背后的原因方面没有取得进一步进展,但我发现当 运行 在 bash 环境而不是 [=17= 环境中运行脚本时,我没有看到此症状] 命令提示符。对我来说幸运的是,脚本都是以这样的方式编写的,它们在两种环境中都可以是 运行,所以我让我的同事使用 bash 来代替它们。