开发者社区> 问答> 正文

云效使用指南:持续交付:流水线:流水线的运行



本文介绍流水线的使用方法。关于RDC流水线服务的概要介绍,请参考 这里。关于流水线的配置,请参考 这里

入口


当进入一个项目后,左侧菜单栏的“流水线”菜单项,是流水线的入口,点击打开流水线列表页,可选择进入具体流水线页面。
而如果左侧菜单栏没有出现“流水线”菜单项,请前往“设置”->“服务”为该项目配置流水线服务。

阶段与任务



图中,红色框“持续集成”是一个阶段,跟“日常环境测试”、“预发环境测试”、“正式发布”几个阶段串接在一起,形成整个流水线。
而每个阶段,可以包含若干任务。比如,“持续集成”阶段,包括黄色框“构建”这个任务,以及“单元测试”这个任务。两个任务串接在一起,是“持续集成”阶段的全部内容。

流水线的启动运行


可以把一条流水线设置为代码提交后自动触发、定时触发或手动触发。即使设置为前两种方式之一,也仍然可以手动触发。手动触发的方法是点击右上角的“运行流水线”按钮。

阶段的启动运行:设置为自动触发时


各阶段之间,可以设置为自动触发或手动触发。下面分别介绍。
设置为自动触发时,当前一阶段完成且后一阶段空闲时,就会自动开始运行后一阶段。
当前一阶段完成时,若后一阶段正在运行,则后一阶段不受干扰,继续运行完成。待运行完成,出现空闲时,后一阶段自动启动,接续前一阶段版本运行。
若在后一阶段运行时,前一阶段完成了多次运行,则在后一阶段出现空闲时,接续前一阶段的最近一次运行版本运行。
举个例子:假定运行日常环境测试阶段需要一个小时,而运行持续集成阶段需要五分钟。在某个小时内,有三次代码提交,触发了持续集成阶段的三次运行。持续集成阶段第一次运行结束,触发了日常环境测试阶段的自动运行,将持续一小时。持续集成阶段第二次运行结束,由于日常环境测试阶段仍在运行,因此不会立即启动该阶段再次运行。持续集成阶段第三次运行结束,由于日常环境测试阶段仍在运行,因此也不会立即启动该阶段运行。待到日常环境测试阶段运行结束后,空闲下来,开始再次运行,此时是接续持续集成阶段第三次运行的版本继续运行,而不是接续持续集成阶段第二次运行的版本继续运行。
亦支持在前一阶段运行完成时,若后一阶段正在运行,强制中止后一阶段当前运行,以便后一阶段接续运行前一阶段最新版本。具体方法是,此时点击两个阶段之间的开始按钮(下图红框),然后在弹出框中点击确定:


阶段的启动运行:设置为手动触发时


设置为手动触发时,当前一阶段完成后,在两个阶段之间出现人工触发按钮,点击开始运行后一阶段。
此时,如果此时下一阶段正在运行,将弹出对话框确认中止正在运行的内容。
如果在下一阶段前,上一阶段已运行多次,则人工启动的下一阶段运行时,使用上一阶段最近一次运行的版本。

任务的启动运行


一个阶段内的串联的各任务,依次运行。前一个任务的完成,自动触发下一个任务的运行。
一个阶段内串联的各任务依次运行完毕后,该阶段才会再次运行。因此不会出现串联的各任务同时运行的情况。
另外,任务间并联,以便同时运行的功能已在开发中,敬请期待。

中止任务运行


有些类型的任务,提供了中止任务运行的方法。相应操作出现在流水线上的阶段中,和/或页面下方的任务中。以构建组件为例,见下图两个红框:


需要人参与交互的任务


任务既可以是完全自动运行的,也可以是需要人工参与的。比如,人工测试、人工发布审核等等。
此时,可以在流水线的相应阶段上,或下方相应任务中,进行人工操作。如图两个红框:


任务运行失败时的处理


当有一个任务运行失败时,该阶段的该次运行即停止。不会再触发下一阶段的运行。也就是说,本次流水线运行至此停止。
此时,如果分析是配置或环境的问题,可以考虑在修复问题后,再次运行。具体操作为,点击流水线上的“重试”按钮。如下图红框:

一个小技巧:如果希望任务运行失败时流水线能够继续运行,可以考虑改变任务的配置,让它总是向流水线返回成功。某些类型的任务能否实现这个方法,具体配置随任务类型的不同而不同。举例来说,对于单元测试组件,可以让自定义的命令行总是返回0。

附原理说明:任务间如何传递“版本”


前面提到,后一阶段接续前一阶段的版本继续运行。那么,“版本”具体是什么,如何承载呢?
流水线的第一个阶段的每次启动,都将会产生一个版本记录。典型的,包括源代码版本信息、相应包版本信息等等。该记录会逐任务逐阶段传递下去。
此外,每种任务类型,可以定义完成时向流水线上下文中,输出哪些参数。同时可以自定义开始时从流水线上下文中,获取哪些参数的值。据此,可以实现灵活的参数传递。

展开
收起
行者武松 2017-10-23 14:20:21 3234 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
云效2.0-智能化运维平台 立即下载
云效助力企业软件供应链生产效能提升 立即下载
基于阿里云K8S服务快速构建DevOps流水线 资料下载 立即下载