整理一下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代碼放進去。
以下:
而後上傳。
接下來就是就開始實踐了。
寫法以下:
而後構建便可,而後就成功了。
下一節,介紹觸發器。