jenkins使用
概念
话说不会偷懒的程序员不是好的程序员,笔者就时常如果有一个软件能够帮我把日常的体力工作都给干了,这样就可以有时间做更多的脑力工作了。
逛博客的时候,经常看到DevOps和CI/CD的相关文章,抱着试试看的想法研究下如何实现。当然跟很多初次看到这几个单词都一脸懵的朋友一样,肯定搜索下都是什么意思:
DevOps: DevOps是Development和Operations的组合,是一种重视软件开发人员(Dev)和运维人员(Ops)之间沟通合作的文化,运动和惯例,用于促进应用开发、应用运维和质量保障(QA)部门之间的沟通、协作与整合。以期打破传统开发和运营之间的壁垒和鸿沟。 通过自动化软件交付和架构变更的流程,使构建,测试,发布软件能够更快,频繁和可信。
CI: 持续集成(Continuous Integration,简称 CI),开发人员各自编写自己负责部分的代码,然后上传到源代码库中合并,CI服务器负责构建软件并测试是否能正常运行,将测试结果反馈给开发人员。
CD: 持续交付(Continuous Delivery,简称 CD)和持续部署(Continuous Deployment),是在持续集成的基础上将集成后的代码部署到更贴近真实运行的环境中去进行进一步的测试,并可以在多种不同的配置上测试代码,运行额外的性能测试,并自动化每个步骤直到部署到生产环境。
需要注意的是: 持续交付并不是指软件每一个改动都要尽快部署到产品环境中,它指的是任何的代码修改都可以在任何时候实施部署,持续部署是作为持续交付——自动将生产就绪型构建版本发布到代码存储库——的延伸,持续部署可以自动将应用发布到生产环境。
好像有点意思了,按照笔者的理解:平常我们写完代码完成自测后提交代码后,就有工具可以帮我们自动编译和测试,如果没有问题就自动打包并部署到实际的生产环境中。看上去很不错的样子,那么怎么实现呢?