首页 > 其他分享 >4.1 开始编写Jenkinsfile

4.1 开始编写Jenkinsfile

时间:2024-07-09 13:18:56浏览次数:9  
标签:pipeline 4.1 script 流水线 编写 println Jenkins Jenkinsfile

为什么使用pipeline?

本质上,jenkins是一个自动化引擎,它支持许多自动模式。流水线向Jenkins添加了一组强大的工具,支持用例、简单的持续集成到全面的持续交付流水线。 通过对一系列的发布任务建立标准的模板,用户可以利用更多流水线的特性,比如:

  • 代码化: 流水线是在代码中实现的,通常会存放到源代码控制,使团队具有编辑、审查和更新他们项目的交付流水线的能力。
  • 耐用性:流水线可以从Jenkins的master节点重启后继续运行。
  • 可暂停的:流水线可以由人功输入或批准继续执行流水线。
  • 解决复杂发布: 支持复杂的交付流程。例如循环、并行执行。
  • 可扩展性: 支持扩展DSL和其他插件集成。

构建一个可扩展是Jenkins的核心价值,流水线可以通过ShareLibrary的方式来扩展。

pipeline定义

关于Jenkins流水线的运行我们可以抽象一下,例如:可以把流水线(pipeline)想象成13号线地铁,把流水线的阶段(stage)想象成地铁的每一个站点,把流水线脚本(jenkinsfile)想象成地铁线路图。这就是流水线的多样性,每条线路都有不同的站点。

现在地铁(Jenkins)已经有了,我们需要设计地铁的运行线路图(Jenkinsfile),在线路图中指定要经过的站点(stages)。这下你是否已经知道我们要运行一条流水线,需要先做什么呢? –编写jenkinsfile

Pipeline

  • Jenkins的Pipeline通过Jenkinsfile进行描述(类似于Dockerfile)
  • Jenkinsfile是Jenkins的特性(pipeline as code)
  • Pipeline是Jenkins的核心功能,提供一组可扩展的工具。
  • 通过Pipeline 的DSL(Pipeline Domain Specific Language)语法可以完成从简单到复杂的交付流水线实现。

Jenkinsfile

  • Jenkinsfile使用两种语法进行编写,分别是声明式和脚本式。
  • 声明式和脚本式的流水线从根本上是不同的。
  • 声明式是jenkins流水线更友好的特性。
  • 脚本式的流水线语法,提供更丰富的语法特性。
  • 声明式流水线使编写和读取流水线代码更容易设计。

pipeline演示

来我们一起看下这里的配置,看下Jenkinsfile的组成及每个部分的功能含义。

  • 使用agent{},指定node节点/workspace(定义好此流水线在某节点运行)
  • 指定options{}运行选项(定义好此流水线运行时的一些选项,例如输出日志的时间)
  • 指定stages{}(stages包含多个stage,stage包含steps。是流水线的每个步骤)
  • 指定post{}(定义好此流水线运行成功或者失败后,根据状态做一些任务)
pipeline{
    //指定运行此流水线的节点
    agent { node { label "build"}}
    

    //流水线的阶段
    stages{

        //阶段1 获取代码
        stage("CheckOut"){
            steps{
                script{
                    println("获取代码")
                }
            }
        }
        stage("Build"){
            steps{
                script{
                    println("运行构建")
                }
            }
        }
    }
    post {
        always{
            script{
                println("流水线结束后,经常做的事情")
            }
        }
        
        success{
            script{
                println("流水线成功后,要做的事情")
            }
        
        }
        failure{
            script{
                println("流水线失败后,要做的事情")
            }
        }
        
        aborted{
            script{
                println("流水线取消后,要做的事情")
            }
        
        }
    }
}
 

验证流水线效果

查看Jenkins构建日志(正确效果)

通过BlueOcean查看(如果没有BlueOcean图标,需要自行在插件中心安装插件)

到此一个简单的Jenkinfile完成了! 后面我们来详细分析每个步骤的作用。

 

标签:pipeline,4.1,script,流水线,编写,println,Jenkins,Jenkinsfile
From: https://www.cnblogs.com/david-cloud/p/18291596

相关文章

  • 如何编写详细的漏洞报告
    一、概述无论是做漏洞研究还是做安全测试,最终都需要以文本的方式将安全漏洞的信息呈现给需要理解漏洞的人,这个人可能是漏洞相关产品所在机构的审核人员,也可能是漏洞所属产品的研发人员,或者是产品经理之类的决策或管理人员。一份详细且恰当的漏洞报告可以减少漏洞发现者或提交者......
  • 编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数, 在
    /编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。只要结果,别输出什么提示信息。/#include<stdio.h>#include<string.h>#include<ctype.h>intfun(char*buff){intsum=0;while(*buff......
  • 编写代码检查规则的神器,解读CodeNavi语法结构
    本文分享自华为云社区《CodeNavi规则的语法结构》,作者:Uncle_Tom。1.代码和检查规则1.1.代码的构成程序是由空格分隔的字符串组成的序列。在程序分析中,这一个个的字符串被称为"token",是源代码中的最小语法单位,是构成编程语言语法的基本元素。Token可以分为多种类型,常见的有......
  • nodejs编写退出登录的接口逻辑
    目录1.安装必要的依赖2.登录成功生成和返回JWT3.在服务器端维护一个黑名单列表,记录已失效的JWT4.在验证JWT时检查黑名单5.退出登录时将JWT添加到黑名单中完整代码nodejs实现退出登录接口的逻辑,通常包括以下步骤:安装必要的依赖登录成功生成和返回JWT。在服务器......
  • CleanMyMac X4.15.8Mac电脑必备下载神器!
    嘿,亲爱的Mac用户们......
  • 编写优雅Python代码的20个最佳实践
    想要让你的代码像艺术品一样既实用又赏心悦目吗?今天我们就来聊聊如何通过20个小技巧,让你的Python代码从平凡走向优雅,让同行看了都忍不住点赞!**温馨提示:更多的编程资料,领取方式在:1.拥抱PEP8实践:遵循PEP8编码规范,比如行宽不超过79字符,使用空格而不是制表符缩进。......
  • 编写 PowerShell 脚本来管理 Windows 防火墙可以帮助自动化配置和监控网络安全设置。
    编写PowerShell脚本来管理Windows防火墙可以帮助自动化配置和监控网络安全设置。以下是一个简单的大纲,涵盖了管理Windows防火墙的主要方面:1.导入模块和设置变量导入 NetSecurity 模块以访问防火墙cmdlet。设置需要使用的变量,如规则名称、端口号等。2.查询和列出......
  • CleanMyMacX4.15.3最新版本下载!让你的Mac重焕活力!
    “我电脑又卡了。”这几乎是每一个Mac用户的共同心声。在苹果的官方论坛里,“Mac变慢”的问题几乎成了日经帖,每天都有新的用户发帖抱怨自己的电脑变慢。而这个问题,也是Mac电脑维修店最常见的问题之一。为什么会出现这种问题呢?一方面,由于硬件更新换代的速度跟不上软件发展的......
  • 学会python——用python编写一个计算机程序(python实例十六)
    目录1.认识Python2.环境与工具2.1python环境2.2VisualStudioCode编译3.编写计算器程序3.1代码构思3.2代码实例3.3运行结果 4.总结1.认识PythonPython是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python的设计具有很强的可读性,......
  • DCS292 编译器构造实验,手工编写递归下降预测分析程序(2.3)
    help-assignment2.4实验四、手工编写递归下降预测分析程序实验四要求你利用Java语言手工编写一个Oberon-0语言的语法分析程序,该语法分析程序执行与实验三自动生成的语法分析程序类似的功能,但实验三要求逆向工程工具生成的是调用图,而实验四要求生成的是流程图(Flowch......