CICD全称是持续集成持续交付,比较适合小步快跑快速迭代的互联网风格,因而在互联网圈广泛流行。
本文所叙述的方案在某二线互联网公司已经得到部门级应用。这篇博文不谈具体的jenkins+git+artifactory怎么安装配置,具体配置当你需要实干时谷歌查找就行。
CICD的方案有什么好处呢?以下是其中一部分:
1. 统一编译机制compile
2. 统一打包机制package
3. 统一包管理仓库repository
4. 统一包部署方案deployment
4. 便于回归regression
5. 便于扩容extension
6. 便于配置configuration
软件工程的一个核心是控制复杂度,尽可能避免引入人为风险因素。既能避免重复造轮子,又能提高业务上线的支持速度,从而保障高质量快速的产品迭代!
所有的代码,包括测试代码和开发代码,均维护在git或者svn下,目前git是主流,svn的代码在逐步往git迁移。
利用jenkins的SCM插件,可以侦测到代码库的变更,从而自动触发编译模块。
编译部分,考虑到不同代码库的编译需求差异,我们使用了Docker技术,从而c++/java等编译需求都能满足:
export success=1
docker run -idtP --name $JOB_NAME