2015-10-06 33 views
0

我有一个场景,我们的Visual Studio Online Git托管解决方案使持续集成(CI)构建成功完成,但本地存在构建错误。TypeScript错误会破坏CI构建吗?

VS.NET解决方案本地的这些构建错误是独立于TypeScript构建错误的。我的理解是,TypeScript构建错误肯定会导致本地构建失败,但不会阻止CI构建服务器成功完成。这是因为tsc.exe TypeScript编译器将简单地将.ts文件转换为构建服务器上的.js文件,但任何关联的错误都不会在此时被阻止。该解决方案只关心输出.js文件,因此它们在编译之后存在并且满足构建服务器。

但是,我并不是100%肯定这一点,并希望澄清如果这是正确的,或者如果有其他的东西允许本地TypeScript错误而不是影响构建服务器的结果?

+0

以前(成功)构建的构建工件是否仍然存在于构建服务器上?即使当前构建失败,因为前一个构建的输出'.js'文件存在,其他构建可能会成功。如果是这样,由于预期的代码生成不会发生,您会发现运行代码的问题。 –

+0

即使他们做了.js文件也没有构建服务器编译检查,因为它只是一种脚本语言。除非完全缺失,否则即使.js不好,它仍然可以工作。这也是应用程序端口的全新构建,因此在引入.ts问题之前不会有任何成功的构建。这意味着.js文件已经创建。你是对的,但运行的代码肯定会有问题。 – atconway

回答

2

,但不会阻止CI构建服务器无法完成全成

它很可能会导致构建失败除非有人明确忽略从构建过程中返回的错误代码(这是一个非常糟糕的想法开始)。

+0

这令人费解。深入挖掘日志,.sln构建成功,它是我看到的一种vanilla VSO构建设置。我看不到我的本地错误如何不打破生成服务器。问题 - 这些TypeScript错误是相当新的,只有我相信,因为我升级了我的TS工具到1.6。此TS以前工作,并突然导致构建错误(我即将发布另一个问题,我不明白的问题)。无论如何,我不知道编译服务器是否有一个旧版本的'tsc.exe'编译器,可以让这些错误不被阻塞? – atconway

+1

'我想知道如果构建服务器有一个旧版本的tsc.exe编译器,这将允许这些错误不被阻止'确实 – basarat

+0

问题是(2)从我可以告诉的折叠:** 1。** An服务器上较早版本的编译器不支持TypeScript错误,因为它们在该旧版本中没有违规。 ** 2。**在'VS2015'中,在错误窗口中有一个选项,默认状态为“Build + Intellisense”。我注意到的错误是_Intellisense_错误。如果我切换到“Build Only”,那么在构建时,错误在本地是非阻塞的。 – atconway