1. 程式人生 > >Jenkins高階篇之Pipeline方法篇-Pipeline Utility Steps-1-A-開發環境搭建和Jenkins執行程式碼測試

Jenkins高階篇之Pipeline方法篇-Pipeline Utility Steps-1-A-開發環境搭建和Jenkins執行程式碼測試

前面我說過,要陸續介紹模擬真實開發場景。這篇,來補充一篇Jenkins+Pipeline+groovy的開發環境。主要環境就是Eclipse,程式碼倉庫服務採用github。我知道,有些人對於這個已經很熟悉,有些人還沒有使用過git,更別說提交程式碼了。希望這篇,能帶給你體驗一次開發的感覺,體驗一次自己修自己bug的的過程。

1.前提條件

這篇,我不會一步一步介紹如何搭建環境。有些過程可能就一句話帶過,重點我肯定會講出來,如果不會,請自己搜搜相關文章網頁等。完成這篇文章,包括以後練習,你需要以下軟體環境。

1)Win7/Win10系統,有Mac本就更好了

2)安裝java jdk 1.8或者以上

3)安裝Groovy 2.5.3以上版本,官網有zip和exe安裝包下載,建議選擇exe檔案安裝,勾選新增到path(系統環境變數)

4)下載Eclipse,當然IJ IDEA也行,我使用Eclipse

5)Eclipse上安裝groovy 外掛,在市場搜尋,還要安裝jenkins editor外掛

6)Eclipse上配置好github的賬號,不會的自己網上搜。

以上是基礎環境,都很簡單,自己通過網路搜尋就能學會。

2.下載專案程式碼

這裡我就不貼全部圖了,在Eclipse工程檢視,右鍵選擇import,然後選擇git->project from git->clone uri,大概如下圖。

把這個git地址複製到下圖URI輸入框,自動填充其他欄位,如果你配置了git賬號。

然後下一步,到下面這個頁面,選擇圖中這一項。

這樣git專案就自動匯入到你的Eclipse環境中。

3.專案基本結構介紹

匯入完成,專案基本結構如下(由於這個github專案我一直會更新,到時候你匯入的可能和下圖有些出入)

第一個是lib下有一個jenkins的開發依賴包,你可以去maven倉庫下載得到,這裡我沒有引入maven專案。src下的檔案是我寫pipeline測試指令碼的檔案,相當於測試指令碼,jenkins 上stage view就來自這個檔案內容。module下檔案,類似我們開發過程一些工具類的一個模組,我會把這個系列介紹的常用方法寫成方法,放在這個模組檔案中。第三個testdata檔案下一些檔案,是一些測試檔案,例如本篇,我需要演示findFiles這個方法,傳遞引數就是查詢.log檔案型別。以後我可能會增加一個script資料夾,用來放我一些舊的pipeline檔案。

4.程式碼提交

在Eclipse上找到src下這個groovy檔案,然後open with,選擇jenkins editor開啟,因為jenkins editor開啟有程式碼提示和部分語法高亮的有點,還有outline,方便我們查詢這個類檔案的方法和屬性。下面,我們增加一個列印語句,然後進行儲存,提交程式碼操作。

程式碼如下:

import hudson.model.*;

println env.JOB_NAME
println env.BUILD_NUMBER
println env.WORKSPACE

pipeline{
	
	agent any
	stages{
		stage("init") {
			steps{
				script{
					println "歡迎來到Anthony的Pipeline教程。"
					model_test = load env.WORKSPACE + "/pipeline/module/pipeline-demo-module.groovy"
				}
			}
		}
		stage("Test Method") {
			steps{
				script{
					log_files = model_test.find_files('**/*.log')
				}
			}
		}
	}
}


上面程式碼 println "歡迎來到Anthony的Pipeline教程。" 是這次新增的程式碼,你只要ctrl+s,注意觀察Eclipse中下面這個檢視。(先不要管上面程式碼的含義,部分你看得懂,部分看不懂),我們剛剛儲存之後,pipeline這個檔案會自動新增到unstaged changes框中。

1)你儲存之後,任何變化的檔案都會自動新增到unstaged changes 框

2)在1中選擇檔案,拖拽到2中,以後變動檔案多了,需要你選擇檔案拖拽到staged changes框

3)在commit message框,輸入一句話,例如“新增一句列印程式碼”

4)點選commit and pust按鈕,等待幾秒就程式碼提交到了github遠端倉庫。(不放心,你可以去你guthub專案重新整理檢查)

這樣,模擬一個開發程式碼提交過程就結束。

5.更新程式碼

工作中,我們過一段時間就需要從服務倉庫下載最新程式碼。多人工作程式碼下載和提交衝突場景,我們這篇不介紹,以後遇到了,你自然會去了解和實踐。現在我們要模擬其他開發修改了程式碼,然後本地我們要更新程式碼操作。在git中,拉取程式碼是pull,提交程式碼是push。

我們自己通過github網頁,把上面新增的列印語句刪除這個過程,來模擬其他開發者的程式碼變動場景。

上圖,我們可以看到我們之前做過的提交,“增加以後程式碼”這個是我提交之前寫的commit message內容。編輯,刪除這行列印語句,然後儲存。

我們在編輯這個檔案,發現,我們前面寫的中文內容是顯示亂碼,所以以後我儘量不用中文寫註釋,否則github上程式碼太難看。

提交之前,給一個commit message,然後點選commit change按鈕。

回到Eclipse軟體頁面,右鍵pipeline這個專案,選擇team選單,次級選單選擇pull就可以。(有pull和pull...,這裡不要點選pull...,以後如果你要和其他branch同步程式碼,你可以點這個pull...),pull操作之後,可能出現下面這張圖。

拉取程式碼就介紹到這裡。

6.Jenkin job測試

我在我環境下新建一個pipeline風格的job,你可以參考我設定,然後進行構建。

上面#18 #19是成功構建, #17裡面的報錯,我這裡提一下原因。原因就是我在module檔案下的pipeline-demo-module.groovy裡面結尾部分沒有寫“return this;”,就出現了java.lang.NullPointerException: Cannot invoke method find_files() on null object

你可以復現這個問題,然後修改程式碼,再一次模擬提交程式碼-修復bug-下載更新程式碼操作。這篇環境搭建就先介紹到這裡,下一篇,解釋這篇新出現的程式碼的含義,還有部分Jenkins debug的技巧。

相關推薦

no