流水线

PipeLine 开发流水线,将软件开发过程的源代码、编译、构建、发布有机的沟通起来,形成一条统一的开发流水线,在流水线内自动完成由源代码/程序包到部署运维的各项工作。

菜单路径

“产品与服务”→“软件开发”→“持续集成”->“流水线”

流水线列表操作

1.登录控制台。

2.点击“产品与服务”选择“软件开发”>“持续集成”->“流水线”,进入流水线列表页面。

列表中的基本操作

操作名称 操作 详解
创建流水线 创建流水线。
查询 支持模糊搜索,输入“流水线名称”即可进行查询。
刷新 刷新构建列表。
分组 可根据相应的分组来查询相应的信息,点击更多还可以创建分组和管理分组。
收藏 点击按钮,对流水线进行收藏。
手动执行 点击按钮,手动执行流水线。
停止执行 点击按钮,停止执行流水线。
日志 查看流水线日志。
触发方式 点击按钮,可以选择流水线触发的方式。
编辑 进入“创建流水线”页面。
删除 删除构建,此操作不可恢复,请慎重。
执行历史 点击按钮,可以查看流水线的执行历史记录。
设置密码 点击按钮,可以将流水线进行密码设置
复制 点击按钮,将流水线进行复制。
移动 点击按钮,将流水线移动到某个分组中。

创建流水线

菜单路径

“产品与服务”→“软件开发”→“持续集成”→“流水线”→“创建流水线”

操作步骤

1.登录控制台。

2.点击“产品与服务”选择“软件开发”>“流水线”>“创建流水线”,选择要使用的流水线模板,进入创建流水线页面。 (1)选择模板 (2)进入创建流水线页面

  • 1)从源码构建所需镜像,并给镜像打Tag
      [1]、基本信息  
      ![](../media/pipeline-40.png)
      [2]、流程配置    
      ![](../media/pipeline-41.png)
      ![](../media/pipeline-42.png)
      ![](../media/pipeline-43.png)    
      [3]、高级配置   
      ![](../media/pipeline-44.png)
      [4]、通知  
      ![](../media/pipeline-45.png)
    
  • 2)通过sonar对源码扫描并提供报告

    [1]、基本信息

    [2]、流程配置

    ![](../media/pipleline-46.png)
    ![](../media/pipleline-47.png)
    ![](../media/pipeline-43.png)    
    

    [3]、高级配置

    ![](../media/pipeline-44.png)
    [4]、通知
    

  • 3)使用自定义的api测试工具对目标应用进行api测试

    [1]、基本信息

     ![](../media/pipeline-40.png)
    

    [2]、流程配置

     ![](../media/pipleline-46.png)
     ![](../media/pipleline-49.png)
     ![](../media/pipeline-43.png)   
    

    [3]、高级配置

     ![](../media/pipeline-44.png)
    

    [4]、通知

     ![](../media/pipeline-45.png)
    
  • 4)将应用镜像发送到指定的运行环境
       [1]、基本信息    
     ![](../media/pipeline-40.png)
    [2]、流程配置   
     ![](../media/pipleline-54.png)
     ![](../media/pipleline-55.png)  
    [3]、高级配置   
     ![](../media/pipeline-44.png)
    [4]、通知  
     ![](../media/pipeline-45.png)
    
  • 5)chart包发布的第一步:从源码构建所需镜像,并给镜像打Tag
    [1]、基本信息    
     ![](../media/pipeline-40.png)
    [2]、流程配置    
     ![](../media/pipleline-46.png)
     ![](../media/pipleline-57.png)
     ![](../media/pipleline-58.png)
     ![](../media/pipeline-43.png)  
    [3]、高级配置     
     ![](../media/pipeline-44.png)
    [4]、通知    
     ![](../media/pipeline-45.png)
    
  • 6)chart包发布的第二步:从chart包发布到指定环境

    [1]、基本信息   
     ![](../media/pipeline-40.png)  
    [2]、流程配置    
     ![](../media/pipleline-59.png)   
    [3]、高级配置        
     ![](../media/pipeline-44.png)   
    [4]、通知     
     ![](../media/pipeline-45.png)
    
  • 7)chart包发布的第三步:合并chart包分支,并给源码、镜像、chart包打版本tag

     [1]、基本信息     
     ![](../media/pipeline-40.png)  
    [2]、流程配置      
     ![](../media/pipleline-60.png)  
    [3]、高级配置          
     ![](../media/pipeline-44.png) 
    [4]、通知      
     ![](../media/pipeline-45.png)
    
    • 8)通过自建chart包实现应用发布 [1]、基本信息

      [2]、流程配置

      [3]、高级配置
      [4]、通知
  • 10)自定义流水线
属性名称 填写规则
流水线名称 1-50字符,仅包含字母、数字、下划线及中横线。
分组 用来选择自己的分组
关联流水线 选择关联的流水线(选填)。
邮件通知 设置用邮件的方式通知(选填)。
节点重试 流水线中任意一个stage执行报错时,可人工操作选择重新执行此stage或者拒绝,最多可重新执行次数默认为3次。(选填)
环境变量 设置环境变量(选填)。
属性名称 填写规则
任务类型
  • 必须创建有一个build节点。
  • CodeCheck、TagAndDeploy节点必须在放在build节点之后.
    任务名称 填写任务名称。
    添加任务 在该节点中添加任务。

    任务类型如下图

    构建

    构建:构建管理描述了由源代码或程序包构建镜像所需的元数据,包括:源码库配置、语言和构建工具、触发器、软件包信息、构件信息、镜像信息等。用户可基于构建进行镜像的Build和研发PipeLine的定义。

    • 基于主干分支构建:从git主干分支拉取源码进行编译、构建、发布。该主干分支由用户创建构建时指定,通常是项目开发中的稳定分支,如master、stable。

    • 基于功能分支构建:从修复或新增某一特定功能的分支拉取源码进行编译、构建、发布。且用户已经基于此分支发起指向主干分支的MergeRequest。

    • 基于程序包构建:构建中的构建类型选择基于程序包构建。在对应的仓库下载程序包,并构建对应的镜像。

      打镜像标签tag/部署应用

    • 镜像tag
    • 版本信息tag:可以为镜像自动打版本信息 Tag,版本为产品的版本。当构建类型为"从源代码到镜像"时,版本信息存在于源码库根目录的文件中,Maven 项目存在于 pom.xml 文件中,Gradle 项目存在于 gradle.properties 文件中,Nodejs 项目存在于 package.json 文件中,其他项目默认存放在 version.txt 文件中。当构建类型为"从程序包到镜像"时,版本信息为软件包版本号。
    • 时间戳tag:可以为镜像自动打时间戳 Tag,格式为:yyyyMMDD_HHmmss。
    • 版本信息-时间戳Tag:可以为镜像自动打版本信息-时间戳 Tag。
    • chart项目中写入镜像tag:提取源码中配置的chart信息,基于信息中的chart分支新建一个分支base-<源码中配置的chart分支>,并根据源码版本文件中配置的imagekey键值信息,找到并修改values.yaml文件中此键值下的镜像tag信息为上面选择的要写入chart项目中的镜像tag,并创建新分支到主分支的合并请求。 例如go源码项目中配置的chart包分支为master分支,配置的imagekey键值名为cicdApi,则会新建一个分支base-master并修改values.yaml中.image.cicdApi.tag信息为所选要写入的镜像tag,最后新建一个base-master分支到master分支的Merge Request。

    人工测试

    人工测试:如果创建了此节点,则在流水线中该环节需要人工手动进行测试。

    人工审核

    人工审核:如果创建了此节点,则在流水线中该环节需要人工手动进行审核。

    脚本执行

    脚本执行:脚本是用来存储对虚机进行一系列操作动作的组合,是一种纯文本保存的程序。

    部署应用

    部署应用:应用是一个或多个应用实例的集合。通过配置应用软件运行所需的资源、运行环境和中间件服务,将应用部署到不同的虚机环境,可分别对应开发环境、测试环境、预生产环境和生产环境等。

    添加Git标签

    添加Git标签:为该节点添加Git标签,并可以选择是否强制向主干分支打Tag。

    分支合并

    分支合并:将功能分支合并到master分支。

    代码检查

    代码检查:代码检查能够在代码构建过程中帮助开发人员快速、有效的定位代码缺陷并及时纠正这些问题,高效检测软件缺陷和安全隐患,提供优秀的静态源代码分析解决方案。

    单元测试

    单元测试:对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作。

    代码安全检查

    代码安全检查:检测出源码中是否存在安全缺陷。

    UI自动化服务

    UI自动化服务:UI自动化测试支持Selenium自动化回归测试,并提供运行集群。以便在持续集成过程中及时发现问题,提高测试效率、代替人工工作量、提高发布质量。

    BugCleaner

    BugCleaner:BugCleaner是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。

    API测试

    API测试: 测试API接口。

    (3)点击“”按钮,创建流水线中的节点。

    PipeLine 开发流水线,将软件开发过程的源代码、编译、构建、发布有机的沟通起来,形成一条统一的开发流水线,在流水线内自动完成由源代码/程序包到部署运维的各项工作。

    4.在填写完毕流水线信息之后,点击“保存”按钮,流水线创建成功

    5.返回流水线列表页面,点击手动执行按钮按照定制的流水线开始执行