我们有一个GoCD安装,我们希望将管道配置XML文件(cruise-config.xml)保留在单独的git存储库中,并在更改时(最好通过管道并自动)将其安装到GoCD服务器。 />但是,在将XML配置文件发送到GoCD之前,我们找不到一种简单的方法来验证XML配置文件,而且显然我们不想安装无效的配置,因为这会中断我们的管道。是否有任何工具或实用程序可以帮助我们验证配置文件?

评论

如果存在nonne,恐怕解决方案是为此配置文件编写一个linting程序。

#1 楼

到目前为止,我们发现的最好的解决方案是使用go源代码中的MagicalGoConfigXmlLoader接口,因为它调用内部validateCruiseConfig命令,该命令会执行所有验证,否则如果文件无效,则会终止:

MagicalGoConfigXmlLoader loader = new MagicalGoConfigXmlLoader(new ConfigCache());
loader.loadConfigHolder(configAsString);


该解决方案的主要问题在于,它实际上需要检出整个GoCD服务器源代码,并且在工作状态下才能正常工作。另外,由于它是内部API,它会在GoCD版本之间进行更改,从而使GoCD升级更加困难。