Pipeline 流水线项目构建

发布于 2024-03-15 19:01:00 字数 4768 浏览 25 评论 0

一. Pipeline 简介

1.1 概念

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

1.2 使用 Pipeline 的好处

  • 代码:Pipeline 以代码的形式实现,通常被检入源代码控制,使团队能够编辑,审查和迭代其传送流程。
  • 持久:无论是计划内的还是计划外的服务器重启,Pipeline 都是可恢复的。
  • 可停止:Pipeline 可接收交互式输入,以确定是否继续执行 Pipeline。
  • 多功能:Pipeline 支持现实世界中复杂的持续交付要求。它支持 fork/join、循环执行,并行执行任务的功能。
  • 可扩展:Pipeline 插件支持其 DSL 的自定义扩展 ,以及与其他插件集成的多个选项。

1.3 如何使用 Pipeline

  • Pipeline 脚本是由 Groovy 语言实现的,但是我们没必要单独去学习 Groov。
  • Pipeline 支持两种语法:Declarative(声明式) 和 Scripted Pipeline(脚本式) 语法
  • Pipeline 也有两种创建方法:可以直接在 Jenkins 的 Web UI 界面中输入脚本;也可以通过创建一个 Jenkinsfifile 脚本文件放入项目源码库中(一般我们都推荐在 Jenkins 中直接从源代码控制(SCM) 中直接载入 Jenkinsfifile Pipeline 这种方法)。

二. 安装 Pipeline 插件

安装插件后,创建项目的时候多了“流水线”类型:

三. Pipeline 语法结构

3.1 Declarative 声明式语法

进入流水线项目的配置页面,然后点击 Hello World 创建示例代码:

生成内容如下:

pipeline {
   agent any

   stages {
      stage('Hello') {
         steps {
            echo 'Hello World'
         }
      }
   }
}
  • stages:代表整个流水线的所有执行阶段。通常 stages 只有 1 个,里面包含多个 stage
  • stage:代表流水线中的某个阶段,可能出现 n 个。一般分为拉取代码,编译构建,部署等阶段。
  • steps:代表一个阶段内需要执行的逻辑。steps 里面是 shell 脚本,git 拉取代码,ssh 远程发布等任意内容。

最简单的构建流程如下:

pipeline {
   agent any

   stages {
      stage('pull code') {
         steps {
            echo '拉取代码'
         }
      }
      stage('build project') {
         steps {
            echo '构建项目'
         }
      }
      stage('publish') {
         steps {
            echo '发布项目'
         }
      }
   }
}

保存脚本,点击构建按钮:

在流水线项目中,构建完成后会显示一个“阶段视图”,它显示每个阶段耗费的时间,以及具体日志等信息。

3.2 Scripted Pipeline 脚本式

进入流水线项目的配置页面,然后点击 Script Pipeline 创建示例代码:

脚本式语法结构:

node {
   def mvnHome
   stage('Preparation') { // for display purposes
   }
   stage('Build') { // for display purposes
   }
   stage('Publish') { // for display purposes
   } 
}
  • Node:节点,一个 Node 就是一个 Jenkins 节点,Master 或者 Agent,是执行 Step 的具体运行环境,后续讲到 Jenkins 的 Master-Slave 架构的时候用到。
  • Stage:阶段,一个 Pipeline 可以划分为若干个 Stage,每个 Stage 代表一组操作,比如:Build、Test、Deploy,Stage 是一个逻辑分组的概念。
  • Step:步骤,Step 是最基本的操作单元,可以是打印一句话,也可以是构建一个 Docker 镜像,由各类 Jenkins 插件提供,比如命令:sh ‘make’,就相当于我们平时 shell 终端中执行 make 命令一样。

四. 使用片段生成器帮助生成 Pipeline 脚本

4.1 生成 Git 拉取脚本

点击构建按钮,测试脚本是否正确:

4.2 生成构建脚本

使用 sh:Shell Script 来生成 Shell 脚本执行模板:

将脚本复制到,Pipeline 脚本声明里面

4.3 生成发布脚本

选择 deploy:Deploy war/ear to a container 生成发布脚本:

五. Pipeline Script from SCM

刚才我们都是直接在 Jenkins 页面中配置 Pipeline 脚本,这样不方便脚本维护,建议把 Pipeline 脚本放在项目中(一起进行版本控制),这样即使服务器宕机,脚本文件也不会丢失。

第一步:在项目根目录建立 Jenkinsfifile 文件,把内容复制到该文件中

将该文件推送到 Git 服务器上面。

第二步:在 Jenkins 项目中引用该文件

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

0 文章
0 评论
794 人气
更多

推荐作者

浪漫人生路

文章 0 评论 0

620vip

文章 0 评论 0

羞稚

文章 0 评论 0

走过海棠暮

文章 0 评论 0

你好刘可爱

文章 0 评论 0

陌若浮生

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文