如何在Kentico 13中借助CI机制减少冗余Staging同步任务
Kentico 13 持续集成模式下Staging任务冗余问题处理方案
可行解决方案
优化CIRestore执行逻辑,仅恢复变更对象
Kentico 13的CI工具支持通过自定义校验逻辑跳过无变更对象的恢复操作:你可以在构建服务器上留存上一次成功构建后所有CI序列化XML文件的哈希快照,每次执行CIRestore前先对比当前仓库文件与快照的哈希差异,仅将存在变更的对象传递给CIRestore执行恢复。也可以直接使用CI命令行的--restore-only参数指定需要恢复的对象列表,避免全量更新所有对象触发不必要的Staging任务。直接用CI流程替代Staging做跨环境同步
放弃使用Staging做配置类对象的跨环境同步,直接将CI序列化文件作为构建产物的一部分,在测试、生产环境的发布流程中增加CIRestore步骤,直接在目标环境执行对象恢复。该方案从根源上规避了Staging任务冗余的问题,执行前只需提前备份目标环境数据库即可。自定义CI对象过滤规则
虽然原生repository.config仅支持排除规则,但你可以通过实现Kentico的IObjectTypeFilter自定义接口,编写白名单规则,仅允许你需要管控的页面类型、自定义表等对象进入CI流程,其余系统默认对象全部过滤。该方式比逐条配置排除规则容错率更高,也更易维护。自动清理冗余Staging任务
在构建服务器的CIRestore执行完成后,追加自定义脚本步骤:先读取本次PR对应的Git diff记录,提取所有发生变更的CI文件对应的对象CodeName与类型,再匹配Staging任务表Staging_Task中的记录,自动删除无对应Git变更的冗余任务,仅保留真实需要同步的条目。
内容的提问来源于stack exchange,提问作者Jay McCormack
相关产品推荐
相关产品推荐

