jenkins 持续集成和交付——pipeline(五)

前言

整理一下pipeline。

正文

介绍

什么是pipeline呢?

根据前面的所得,我们知道,以前都是模板形式,但是如果有些复杂的项目,需要用更加自定义的写法,那么就有了pipeline,也就是官方给我们的接口,让我们实现更加复制的项目。

pipeline脚本是由groovy实现的,但是我们去写一个构件脚本,也没必要去知道这个groovy实现。

pipeline支持两种语法,Declarative(声明式的)和script pipline语法。

这两种有啥区别,区别就是Declarative更加简单,因为是声明的,我们写代码也知道这种声明的一般都是非常简洁,富有规律的,官方现在也是推荐这种申明的。

pipline 存储方式有两种,一种是写在我们的jenkins的数据库中,也就是说由我们的jenkins 去管理。

另一种是写在我们的项目中,然后jenkins去调用这个脚本,一般为了方便写在jenkinsFile中,有些项目成熟到一定时候,基本不会变动的情况,为了方便会放在jenkins 的衍生项目中,这又是后话了。

使用

在使用这个pipeline 中,我们要安装一下pipeline插件。

然后就出现了下面这个东西:

接下来就是我们就可以创建一下流水线项目了。

好吧,开始。目的就是把我们前面的构建项目用pipeline实现一遍。

我创建了一个名字叫java_pipelien 的pipeline项目,里面是这样的,我选中了这个hello word,这个是个声明式的pipeline。
如下:

pipeline {
    agent any

    stages {
        stage('Hello') {
            steps {
                echo 'Hello World'
            }
        }
    }
}

简单解释一下是什么意思。

上面有一个agent 是代理的意思,后面docker 中我会介绍,这里不详细介绍。

stages 就是阶段。里面就是一步一步的小阶段了,一个阶段里面又可以分为步骤,steps就是步骤了,就是这么划分的。

好吧,直接进入例子,把前面的例子用pipeline重写一遍。

那么第一步我们就是要去拉取代码,那么就去拉取一下吧。

1.拉取代码

那么代码怎么写呢?是否我们要去学一下pipeline呢?当然不完全,前期我们可以依靠一些工具。

项目里面有一个流水线语法:

点击这个,我们可以看自己进去生成一些code。

这样选择一下:

点击生成代码后。

下面是生成的code:

checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '0c040834-78c4-4ba0-b6e3-b7cc9e9184c6', url: 'http://localhost:3000/aoximin/springbootTest.git']]])

这就是去拉取代码的步骤。

然后我们可以复制过去:

好吧,现在可以build 一下,试一下。

这样就可以看到去拉取了代码了,并且成功了。

2.开始构建项目

因为我们安装了maven,其实我们要做的就是如何实现maven脚本的调用。

然后复制过去。

然后可以自己试一下哈。

3.发布

也就是我们需要远程部署,那么这个怎么弄呢?前面我们是通过插件来搞定的,难道要我们自己用脚本来写,怎么写呢?

实际上jenkins 插件有规范的,既然是有规范的,那么其实我们可以调用插件,而不需要自己去实现。

安装完前面的发布插件,那么就会有这个东西。

和以前一样填写。

然后生成,然后贴过去。

4.结果

看下结果。

成功了。

根据前面所说,我们希望脚本放置在项目中,那么这个怎么弄呢?

5.jenkinsfile

在你的项目下创建一个jenkinsfile,然后把你的pipeline代码放进去。
如下:

然后上传。

接下来就是就开始实践了。

写法如下:

然后构建即可,然后就成功了。

下一节,介绍触发器。

posted @ 2021-02-27 21:05  敖毛毛  阅读(148)  评论(0编辑  收藏  举报