CI|CD---持续集成持续部署
jenkins------(CI|CD)的调度工具
软件的结构,构建方式,架构设计,部署方式等等才是你做实现自动化集成和测试的核心载体。
Jenkins只是Job(以上载体)的管理调度平台, 具体的构建,测试,发布工作还是要自己来做的。
如果你是想在job中加入自动话部署流程的话,可以先写好自动化部署脚本然后在jenkins构建任务的Execute Shell中调用相应的Script.
当然jenkins也有上述工具的一些Plugin
构建/编译出错:一般CI会即时发邮件给提交者和管理者,著名最近commit是谁,版本名等,从而可以及时修正错误。
整套CI|CD工具
github/gitlab + github-actions/gitlab-CI/jenkins + maven,ant/cmake/pyinstaller + 调用执行脚本(如测试脚本)+ jira
依次为:仓库 + CI工具 + 打包工具 + 测试脚本 + 项目/缺陷管理工具
maven/ant:用于java源码打包成跨平台的.jar虚拟机可解释文件
cmake:用于C源码打包成win/linux下的库及可执行文件
pyinstaller:用于python源码打包成win/linux下的可执行文件
CI
包括拉取版本代码,打包(构建)过程
注意:CI工具如jenkins去仓库拿源码,需要先配置访问权限,和jira访问仓库一样。
集成-部署-上线-发布的区别
集成:不同代码部分放到一起组成整体
部署:为了测试(因此需要部署到类生产环境)。部署和测试都是为了验证集成结果正不正确。正确则集成成功。
上线:部署到生产环境
发布:给新版本打上版本号,提供给受众获取地址。
从开发岗位要求以及语言是否跨平台分析
- 真正要做CI|CD全流程自动化:还是java项目,因为.jar是跨平台的,可以做持续部署。
- 而C++项目可以实现CI,却没有CD这一说。因为没有像maven一样自动化集成分发的C++包管理工具,即便分发也不能直接使用还需要头文件,即便写了脚本如ssh上传至远端实现分发也无法跨平台等等。
因此可以了解下java的CI|CD全貌。