Jenkins Pipeline

什么是pipeline

Jenkins pipeline 是 Jenkins的精髓,是帮助 Jenkins 实现 CI 到 CD 转变的重要角色。

简单来说,就是一套运行于 Jenkins 上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程。

Pipeline 的实现方式是一套 Groovy DSL,任何发布流程都可以表述为一段 Groovy 脚本,并且 Jenkins 支持从代码库直接读取脚本,从而实现了 Pipeline as Code 的理念。

Pipeline的几个概念

image-20220227195122456

Stage:一个 Pipeline 有多个 Stage 组成,每个 Stage 包含一组 Step。一个Jenkinsfile 可以分为一个大的Stage,分为打包、构建、 部署。

Step步骤:是基本的运行单元,可以是创建一个目录、从代码库中 checkout 代码、执行 一个 shell 命令、构建 Docker 镜像、将服务发布到 Kubernetes 集群中。Step 由 Jenkins 和 Jenkins 各种插件提供。

Agent:agent 主要用于描述整个 Pipeline 或者指定的 Stage 由什么规则来选择节点执行。在最新的 Jenkins 版本中,可以支持指定任意节点(any),不指定(none),标签(label),节点(node),dockerdockerfilekubernetes

Jenkinsfile

Jenkinsfile就是一个文本文件,也就是部署流水线概念在Jenkins中的表现形式。像Dockerfile之于Docker。所有部署流水线的逻辑都写在Jenkinsfile中。 建议把Jenkinsfile跟项目源码一块加入到版本控制中,这样方便项目成员了解构建构建和流程。当然出于安全,有些环境变量和参数等可以管理在Jenkins管理平台上。


参考: https://www.cnblogs.com/mingerlcm/p/12790884.html