Jenkins:jenkins介绍(一)

jenkins介绍

Jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的"自动化"编译、打包、分发部署。jenkins可以很好的支持各种语言(比如:java, c#, php等)的项目构建,也完全兼容ant、maven、gradle等多种第三方构建工具,同时跟svn、git能无缝集成,也支持直接与知名源代码托管网站,比如github、bitbucket直接集成。

简单点说,Jenkins其实就是大的框架集,可以整个任何你想整合的内容,实现公司的整个持续集成体系!

如:自动化,性能,打包,部署,发布&发布结果自动化验证,接口测试,单元测试

各种你能想到的,和不能想到的

Jenkins可自由部署在各平台:Windows, Linux, Mac

 

 

1 pipeline介绍

1.1 Jenkins Pipeline总体介绍

  1. Pipeline 是Jenkins 2.X核心特性,帮助Jenkins实现从CI到CD与DevOps的转变;

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

3.Jenkins pipeline其实就是基于Groovy语言实现的一种DSL(领域特定语言),用于描述整条流水线是如何进行的。流水线的内容包括执行编译、打包、测试、输出测试报告等步骤。

1.2什么是Jenkins Pipeline

1.Jenkins Pipeline是一组插件,让Jenkins可以实现持续交付管道的落地和实施。
2.持续交付管道(CD Pipeline)是将软件从版本控制阶段到交付给用户或客户的完
整过程的自动化表现。
3.软件的每一次更改(提交到源代码管理系统)都要经过一个复杂的过程才能被发布。

1.Pipeline提供了一组可扩展的工具,通过Pipeline Domain Specific Language
(DSL) syntax可以达到Pipeline as Code的目的

2.Pipeline as Code:Jenkinsfile 存储在项目的源代码库

1.3 Why Pipeline?

本质上,Jenkins 是一个自动化引擎,它支持许多自动模式。 Pipeline向Jenkins中添加了一组强大的工具, 支持用例 简单的CI到全面的CD pipeline。通过对一系列的相关任务进行建模, 用户可以利用pipeline的很多特性:

• 代码:Pipeline以代码的形式实现,通常被检入源代码控制,使团队能够编辑,
审查和迭代其CD流程。
• 可持续性:Jenkins重启或者中断后都不会影响Pipeline Job。
• 停顿:Pipeline可以选择停止并等待人工输入或批准,然后再继续Pipeline运行。
• 多功能:Pipeline支持现实世界的复杂CD要求,包括fork/join子进程,循环和
并行执行工作的能力。
• 可扩展:Pipeline插件支持其DSL的自定义扩展以及与其他插件集成的多个选项。

1.4 Pipeline与freestyle区别

1.Job调度方式
pipeline:通过结构化pipeline 语法进行调度,易于理解与阅读
freestyle:通过jenkins api或者cli进行调度

2.Job显示形式
pipline:提供上帝视角(全局视图)
freestyle:没有视图

1.5 Jenkins Pipeline 基础语法

官网链接:https://jenkins.io/doc/

Pipeline 支持两种语法

  1. 声明式(jenkins2.5新加入的语法)

特点:
1.最外层必须由pipline{ //do something }来进行包裹
2.不需要分好作为分隔符,每个语句必须在一行内
3.不能直接使用groovy语句(例如循环判断等),需要被script {}包裹



2.脚本式

 

特点:
1.最外层有node{}包裹
2.可直接使用groovy语句

Declarative Pipeline(声明式)核心概念

核心概念用来组织pipeline的运行流程

1.pipeline :声明其内容为一个声明式的pipeline脚本
2.agent:执行节点(job运行的slave或者master节点)
3.stages:阶段集合,包裹所有的阶段(例如:打包,部署等各个阶段)
4.stage:阶段,被stages包裹,一个stages可以有多个stage
5.steps:步骤,为每个阶段的最小执行单元,被stage包裹
6.post:执行构建后的操作,根据构建结果来执行对应的操作

根据上面几个概念就能够轻易的创建一个简单的pipeline:

  agent any

    stages{

        stage("first stage"){

            steps("first steps"){

                echo "this is first step"

            }

        }

    }

    post{

        always{

            echo "this is ending..."

        }

    }

}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值