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

前言

整理一下pipeline。java

正文

介紹

什麼是pipeline呢?git

根據前面的所得,咱們知道,之前都是模板形式,可是若是有些複雜的項目,須要用更加自定義的寫法,那麼就有了pipeline,也就是官方給咱們的接口,讓咱們實現更加複製的項目。spring

pipeline腳本是由groovy實現的,可是咱們去寫一個構件腳本,也不必去知道這個groovy實現。docker

pipeline支持兩種語法,Declarative(聲明式的)和script pipline語法。數據庫

這兩種有啥區別,區別就是Declarative更加簡單,由於是聲明的,咱們寫代碼也知道這種聲明的通常都是很是簡潔,富有規律的,官方如今也是推薦這種申明的。springboot

pipline 存儲方式有兩種,一種是寫在咱們的jenkins的數據庫中,也就是說由咱們的jenkins 去管理。maven

另外一種是寫在咱們的項目中,而後jenkins去調用這個腳本,通常爲了方便寫在jenkinsFile中,有些項目成熟到必定時候,基本不會變更的狀況,爲了方便會放在jenkins 的衍生項目中,這又是後話了。工具

使用

在使用這個pipeline 中,咱們要安裝一下pipeline插件。ui

而後就出現了下面這個東西:url

接下來就是咱們就能夠建立一下流水線項目了。

好吧,開始。目的就是把咱們前面的構建項目用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代碼放進去。
以下:

而後上傳。

接下來就是就開始實踐了。

寫法以下:

而後構建便可,而後就成功了。

下一節,介紹觸發器。

相關文章
相關標籤/搜索