Jenkins实践指南--pipeline概述

偏执的太偏执、 2023-09-24 15:06 52阅读 0赞

1.pipeline概述

1.1 什么是pipeline

从某种抽象层次上讲,部署流水线(Deployment pipeline)是指从软件版本控制库到用户手中这一过程的自动化表现形式。——《持续交付-发布可靠软件的系统方法》

pipeline 英语愿意为管道,在Jenkins里面可以理解为,是一套工作流框架,它将原本各个彼此独立的任务连接起来,实现一些比较复杂的工作流程,整个运行流程看起来就像是一个管道一样。

Jenkins 2.x可以支持pipeline as code,即通过代码来描述部署流水线。使用代码而不是UI的意义在于:

更好地版本化:将pipeline提交到版本管理库中,可以更好的进行版本管理

更好地协作:pipeline的每次修改对所有人均是可见的,也可对pipeline进行代码审查

更好的复用性:手动操作配置没有办法比较难直接复用,而代码则可以

更直观的工作流程:通过pipeline可以更加直观看到当前整个工作流所涉及到的各个环节等信息

1.2 pipeline 语法选择

Jenkins 团队在一开始实现Jenkins pipeline时,Groovy被选为基础来实现,因此在写pipeline时,很像是在写Groovy代码,从而有很大的灵活性和可扩展性。因此pipeline也被分成两种格式的语法:脚本式语法(Scripted)和声明式语法(Declarative)

脚本式语法

  1. node {
  2. stage("Build") {
  3. println "构建应用"
  4. }
  5. stage("Test") {
  6. println "测试应用"
  7. }
  8. stage("Deploy"){
  9. try{
  10. println "部署应用"
  11. }
  12. catch(err){
  13. // 捕获异常
  14. throw err
  15. }
  16. }
  17. }

声明式语法

  1. pipeline{
  2. agent any
  3. stages{
  4. stage("Build"){
  5. steps{
  6. echo "构建应用"
  7. }
  8. }
  9. stage("Test"){
  10. steps{
  11. echo "测试应用"
  12. }
  13. }
  14. stage("Deploy"){
  15. steps{
  16. echo "部署应用"
  17. }
  18. }
  19. }
  20. post {
  21. failure{
  22. echo "运行失败"
  23. }
  24. }
  25. }

以下两种语法格式差异如下所示:

脚本式语法灵活、可扩展,也意味着更复杂。适合于对于Groovy非常熟悉的团队或个人

声明式语法简单、更结构化

pipeline插件从2.5版本开始,同时支持两种格式的语法。后续示例均采用声明式语法

1.3 Jenkinsfile

Jenkinsfile是一个文本文件,是pipeline概念在Jenkins中的具体体现形式。类似于Dockerfile与Docker的关系。

如果在Jenkins使用pipeline,需要确认是否安装pipeline插件。

pipeline 的代码可以直接写到Jenkins里面也可以通过版本管理工具来拉取。gitlab拉取示例如下所示:

图片

01pipelineFromGit.png

脚本路径:就是pipeline的文件名,默认为Jenkinsfile


资源分享

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,52人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Jenkins pipeline 隐藏密码

    Jenkinsfile中使用pipeline编写脚本执行命令时候,很多时候我们的命令中需要携带密码,所以我们需要将密码隐藏避免输出到控制台日志中,先看一下隐藏密码后的效果...

    相关 Jenkins pipeline构建问题

    1、今天工作发现了一个很有意思的错误,困扰了我一天多时间。 pipeline工程脚本中有这么一个步骤(主要目的是对比a 和b两个文件差异,将只出现在b中的差异内容输出到dif