Jenkins Pipeline 概述

概述

这篇概述是https://jenkins.io/doc/pipeline/tour/getting-started/  Guided Tour的译文。

Jenkins Pipeline(“Pipeline”)是Jenkins的插件,支持运行和集成continuous delivery pipelines.

持续delivery的pipeline实际是进程的一种自动化表达,例如从github上获取相应的software直到发布给users和customers. 

Jenkins Pipeline提供了一个扩展的工具集合去模块化”从简单到复杂的”delivery pipeline为code. Jenkins Pipeline的定义通常写在Jenkinsfile里. 通常这个Jenkins也是项目code的一部分.  Pipeline 和 Using a Jenkinsfile有更多介绍.

Pipelines是由许多步骤组成.这些步骤允许你build, test, deploy应用. Jenkins Pipeline允许你组合这些步骤,使你的automation process模块化.

最简单的Pipeline

一个’step’就是一个操作. 当一个step成功则继续执行下一次操作,失败则整个pipeline fail. 全部steps成功则pipeline成功.

《Jenkins Pipeline 概述》 multiple-steps

如上图, 一个sh就是一个step.

如上图所示, 针对step还有step wrapper. 这些强大的steps wrapper可以很方便的解决许多问题.例如上图所示的retry和timeout. wrapper也可以互相修饰.例如下图.

《Jenkins Pipeline 概述》 wrapper

pipeline post tasks

通常Pipeline Jenkins job不会由post actions,但是Jenkins Pipeline支持post可以在post之后去完成某些操作.如下图:

《Jenkins Pipeline 概述》 post_tasks

定义执行环境

我们在上面所有示例中都可以看到agent指令. 这个agent指令告诉Jenkins哪里和如何执行Pipeline. 且agent是Jenkins Pipeline必须可少的元素.

在这个过程中,会发生以下事情:

只要有可用的executor,所有的steps都会被Jenkins顺序执行

workspace将会包含所有从source control中checked out的文件和Pipeline的格外的working files.

在pipeline中有多种方法定义agents. 在本章我们将只关注如何用临时的container去创建agent.

pipeline设计的非常容易在docker images或者container里去运行。这就使得Pipeline配置agent时非常简单。

《Jenkins Pipeline 概述》 docker

当这个Pipeline执行时,Jenkins就会自动启动指定的container并在内部执行相应的steps.

《Jenkins Pipeline 概述》 run in docker

环境变量的使用

我们设置全局的环境变量, 如下图。也可以给每个stage设置环境变量。注意不同阶段的环境变量有不同的作用域。

《Jenkins Pipeline 概述》 global_env

日志

当你测试你的pipeline时,许多人不想去从console output中去debug失败信息。只要你的test runner可以输出测试结果,Jenkins就可以记录和收集测试结果。收集测试结果需要用到post 

《Jenkins Pipeline 概述》 recording and artifacts

 该post task则会抓取测试结果并让Jenkins track这些, 分析趋势和报告。 如果Pipeline中含有失败的测试,将会被标注为UNSTABLE, 标记为黄色。 FAILED的话则为红色。

如果有测试失败,则获取编译日志作本地分析和执行是非常有用的。 由于本章节,我也不太懂, 具体可参考https://jenkins.io/doc/pipeline/tour/tests-and-artifacts/

清理和提示

利用post section去作清理和提示工作

《Jenkins Pipeline 概述》 clean

也可以发送邮件等

《Jenkins Pipeline 概述》 mail

部署

在常见的continuous delivery pipeline包含最少三个步骤, build, test 和 deploy. 

稳定的Build和Test stages是任何deployment执行前非常关键的步骤。

《Jenkins Pipeline 概述》 cd

也支持人为的参与,最常见的如下图:

通常在stage之间切换时,由其是stages环境,你可以想人为的确认再往后进行。例如,我们需要人为的干预这个应用是不是足够好的去promote到生产环境。这一步骤可以通过‘input’ step实现。如下,’Sanity check’ stage被input blocks住,直到人为confirm这个过程才会进行。

《Jenkins Pipeline 概述》 input_mannual

    原文作者:wangxiaoxi
    原文地址: https://www.jianshu.com/p/0ce155d9d893
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞