Jenkins高階篇之Pipeline語法篇-2-第一個Pipeline指令碼練習
前面一篇,介紹了什麼是Pipeline,和Pipeline的基本概念,和幾個關鍵字的基本含義的介紹,真正的涉及到Pipeline的語法還沒有開始介紹。這篇先來介紹第一個Pipeline程式碼,分別用兩種模式來寫,逐漸開始展開Pipeline的語法學習。
1.前提條件準備
1)準備一個Jenkins環境
我個人有一個VPS,搭建了一個Jenkins,供大家參考。我這個系列的指令碼涉及Pipeline程式碼和全部Jenkins job都會在上面進行測試。但是這個環境,還有不到一年時間過期,大概2019-7月份到期。Jenkins url: http://65.49.216.200:8080/ , 你們可以用這個賬號去登入:anthony/123456
2) Jenkins環境master節點
我這個Jenkins是安裝到一個Linux上,安裝好了Jenkins,還需要安裝Groovy,以及Git,還有後面也需要安裝Python環境。因為Pipleline裡面需要寫一部分Groovy程式碼,所以需要安裝Groovy執行環境,安裝Python也是基於這個原因。
3) 準備一個Github賬號和程式碼倉庫
因為Jenkins每次構建之前一般都需要去check out程式碼,所以我們專案練習程式碼放在github上,後面我使用的程式碼會給出,你們如果需要,可以去folk。
2.在Jenkins上建立一個Pipeline專案
這個可能很多人沒有建立過這個型別,基本上大家之前建立的專案都是自由風格的。參考下面這個圖,建立一個Pipeline Job.(注:安裝Jenkins的嚮導過程中,選擇預設的外掛安裝,就會有Pipeline元件)
3.不整合Github的Pipeline程式碼
這種方式,直接把寫好的Pipeline程式碼拷貝到Pipeline對應的Jenkins頁面上,經常用這個方式來進行本地Debug和單元測試。
選擇上面建立好的這個Pipeline Job,點選Confige, 到達配置介面,點選Pipeline,然後把程式碼帖進去,點選儲存,具體參考下圖。
pipeline { agent any stages { stage('Build') { steps { println "Build" } } stage('Test') { steps { println "Test" } } stage('Deploy') { steps { println "Deploy" } } } }
上面這個Pipeline模式就是一個典型的Declarative型別,先不管上面具體語法,我們點選儲存,然後點選Build Now,看看控制檯日誌,會發生什麼。
下面我們繼續來看看Script模式,修改並黏貼如下程式碼。
點選儲存,然後點選Build Now,繼續看看#2的job的控制檯。
從日誌結果來看,第二種Scripted Pipeline程式碼也成功執行,得到了正確的結果。
4.整合Github,把Pipeline程式碼放到Jenkinsfile檔案中
這種方式才是開發中使用的場景,任何Pipeline和業務程式碼一樣需要新增到程式碼倉庫。這裡我們模仿git,只寫Declarative的模式,以後我們都使用Declarative模式的Pipeline程式碼。
專案中只有一個Jenkinsfile文字檔案,裡面寫的是Declarative模式的Pipeline程式碼。下面,繼續使用上面建立好的Job,到Configure頁面,選擇如下圖的git拉取Pipeline程式碼。
點選儲存,然後點選Build Now,點選#3的控制檯,看看日誌。
這種程式碼拉取,執行檔案的方式,執行結果也是成功,以後我們基本上都是使用這個方式。
回到Jenkins job上看看整體構建情況,以下這種圖就是Pipeline的優點之一,每個stage或者叫階段都幹了什麼事情,是成功還是失敗,每個stage都可以看到日誌。
這篇就學習到這裡,篇幅太長了,具體程式碼解釋和語法含義,下一篇來介紹。能成功跑起來,就可以了,剛開始,很多人都玩不了這個程式碼,真不要小瞧了。其實上面程式碼列印語句程式碼用了Groovy的語法,如果你機器沒有安裝Groovy,可能就會報錯,構建失敗。