zoukankan      html  css  js  c++  java
  • 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访问仓库一样。

    集成-部署-上线-发布的区别

    集成:不同代码部分放到一起组成整体
    部署:为了测试(因此需要部署到类生产环境)。部署和测试都是为了验证集成结果正不正确。正确则集成成功。
    上线:部署到生产环境
    发布:给新版本打上版本号,提供给受众获取地址。

    从开发岗位要求以及语言是否跨平台分析

    1. 真正要做CI|CD全流程自动化:还是java项目,因为.jar是跨平台的,可以做持续部署。
    2. 而C++项目可以实现CI,却没有CD这一说。因为没有像maven一样自动化集成分发的C++包管理工具,即便分发也不能直接使用还需要头文件,即便写了脚本如ssh上传至远端实现分发也无法跨平台等等。
      因此可以了解下java的CI|CD全貌。

    java项目:可以CI|CD---持续集成持续部署

    c++项目:一般只说CI---持续集成

  • 相关阅读:
    SQLite 版本引发的 Python 程序调用问题
    从0到10亿,微信后台架构及基础设施设计与实践!
    从Oracle到PostgreSQL:动态性能视图 vs 标准统计视图
    第一章 准备工作
    Swagger2简介
    如何查询numpy,scipy,matplotlib等的版本和安装位置
    完美解决ImportError: cannot import name '_validate_lengths'报错问题
    完美解决AttributeError: module 'scipy.misc' has no attribute 'imread'报错问题
    线上课堂:ernetes Operator开发范式
    Bomb Enemy 炸弹人
  • 原文地址:https://www.cnblogs.com/Henry-ZHAO/p/14663131.html
Copyright © 2011-2022 走看看