更新时间:2023-12-04 GMT+08:00

步骤八:配置流水线,实现持续交付

流水线服务提供可视化、可定制的自动交付软件生产线,支持代码检查、构建、部署等多种任务类型。

随着项目的进行,各个环节(构建、发布、部署)越来越标准化。但是每个环节都相对独立,是半成品,不能交付业务价值。将每一个环节有效的串联起来形成一套完整的持续交付流水线,才能够真正提高软件的发布效率与质量,持续不断的创造业务价值。

通过本章节,您将了解开发人员Chris如何将代码检查、构建、部署任务串联起来,实现持续交付。

预置流水线简介

示例项目中预置以下5个流水线任务,可根据需要查看并使用。

表1 预置流水线任务

预置流水线任务

任务说明

phoenix-workflow

基本的流水线任务。

phoenix-workflow-test

测试环境对应的流水线任务。

phoenix-workflow-work

Worker功能对应的流水线任务。

phoenix-workflow-result

Result功能对应的流水线任务。

phoenix-workflow-vote

Vote功能对应的流水线任务。

  • 关于Vote、Result、Worker的说明,请参见方案架构

配置并执行流水线

一条流水线通常由多个阶段构成,每个阶段中可以添加多个子任务。

  1. 配置流水线。

    1. 进入“凤凰商城”项目,单击导航持续交付 > 流水线
    2. 找到流水线“phoenix-workflow”。单击图标,在下拉列表中单击“编辑”,进入编辑页面。
    3. 添加代码检查阶段。
      1. 单击“流水线源”与“构建”之间的,添加阶段。
      2. 单击“阶段_1”后的,在“编辑阶段”窗口中输入阶段名称“代码检查”,单击“确定”
        图1 编辑阶段名称
      3. 单击“新建任务”

        “新建任务”窗口中,单击“Check代码检查”插件后的“添加”

      4. 选择调用任务“phoenix-codecheck-worker”,单击“确定”

        代码检查任务有三种检查模式,本文保持默认值“Full”,可根据需要修改。

        • Full:全量检查,扫描代码仓里的所有文件。
        • Incremental(last commit): 增量检查,基于最近一次commit文件进行扫描。
        • Incremental(last success):增量检查,基于最近一次门禁通过后的变更文件进行扫描。
    4. 配置部署任务。

      单击部署任务名称,在窗口中选择关联构建任务“phoenix-sample-ci”,并检查配置项的值。

      • 任务“phoenix-sample-standalone”的配置需与部署服务中同名任务的“参数设置”页面内容保持一致。
      • 任务“phoenix-cd-cce”的配置需与部署服务中同名任务“参数设置”页面内容保持一致。

      部署任务中添加了两个部署任务,若您在之前的步骤中只选择了一种部署方式,请保留对应的部署任务,将另一个删除。

  2. 进入云容器引擎服务。找到目标集群,单击,选择“无状态负载”页签,确认列表中无记录。

    若列表中有记录,则勾选全部记录,单击“批量删除”,并在弹框中勾选所有选项,单击“是”,将列表记录清空。

  3. 返回流水线列表页面,单击“phoenix-sample-pipeline”所在行的,在滑出的窗口单击“运行”,启动流水线。

    当页面中显示时,表示任务执行成功。

    若任务执行失败,请于执行失败的任务处检查失败原因,可打开步骤详情查看任务日志,根据日志进行排查。

配置准出条件

为了控制代码的质量,代码必须经过扫描,并且错误数量控制在合理范围内,才允许发布。通过添加质量门禁可以有效的自动化控制流程。

  1. 在流水线任务“phoenix-sample-pipeline”详情页,单击页面右上角,在下拉列表中选择“编辑”
  2. 在阶段“代码检查”中,单击“准出条件”
  3. “准出条件”窗口中,单击“标准策略准出条件”插件后的“添加”
  4. 选择“系统策略”,单击“确定”
  5. 单击“保存并运行”,启动流水线任务。

    若代码检查问题数未达到准出条件,流水线任务将执行失败。

    准出条件的管理请参考规则与策略

配置代码变更自动触发流水线

通过以下配置,可实现代码变更自动触发流水线执行,从而实现项目的持续交付。

  1. 在流水线任务“phoenix-sample-pipeline”详情页,单击页面右上角“编辑”
  2. 选择“执行计划”页签,在“事件触发”目录下勾选“代码提交时触发”开关,在分支过滤下拉列表中勾选分支“master”,单击“保存”
  3. 验证配置结果:修改代码并推送至master,即可查看流水线是否自动执行。