我们仍然看到团队通过直接将复杂的多线命令直接嵌入到工具的配置中来配置其CI和CD工具。这些嵌入式命令通常还包含仅在构建环境中生效的步骤,包括CI特定环境变量等事项,只会在CI环境等中创建/修改文件和模板等。这使得构建环境成为特殊的野兽- 其结果无法在开发人员的计算机上本地重复。
这是非常有问题的,因为CI / CD工具应该在代码中曝光问题,所谓的一个复杂的野兽,其行为难以调试,其结果很难复制。
避免的方法在CI / CD工具中编程是从工具的肠道中提取构建过程的复杂性,并进入一个可以通过单个命令调用的简单脚本。然后可以在任何开发人员工作站上执行此脚本,因此消除了构建环境的特权/奇异状态。