Jenkins 基礎篇 - 任務創建


前面了解了 Jenkins 上各種任務的區別后,我們就來實踐應用下,先創建一個【文件夾】類型的任務,將我們目前的一些基礎的演示任務【移動】到文件夾里面去,這樣可以先做個簡單的分類。
新建一個【文件夾】類型的任務,名稱為 Jenkins-Basic
image.png
可以看到【文件夾】類型的任務可配置的內容很少,不做特殊設置,默認即可:
image.png
然后我們將前面的演示項目移動到這個文件夾下面:
image.png
image.png
接下來我們將做個實戰任務,演示任務的構建、打包、上傳、部署等操作,以及詳細解析任務的各個配置階段。
新建一個【構建一個自由風格的軟件項目】類型的任務,名稱為 demo-todo-list
image.png
配置如下:
image.png
我構建了多次才成功,主要是下載構建工具 Gradle 超時,在第九次構建后才成功,構建后看看日志如下:
image.png
image.png
我們現在調整下配置,在【構建后操作】下面添加一項【Send build artifacts over SSH】,這樣做的目的是將我們構建出來的可執行 jar 包發送到我們的服務器,然后在用命令行啟動我們的 Spring boot 應用:
image.png
簡單說下這里的配置:在 SSH Server Name 這里展開選擇我們之前配置好的一台服務器;Source files 定位到我們 jar 包的位置;Remove prefix  和 Remote directory 是可選的,我這里為了目錄簡潔,在 Remove prefix 這里填入 build/libs/,這表示會將 Source files 中 build/libs/demo-todo-list*.jar 的前面 build/libs/ 移除掉;Remote directory 我這里填入的是 service-deploy,這表示將文件發送到遠程服務器用戶目錄下的 service-deploy 文件夾下面,需要注意的是要確保目錄 service-deploy 存在。然后在 Exec command 處填入下面的指令:

# 進入到指定的目錄
cd service-deploy

# 檢查服務是否在運行,如果在運行就將其停掉
ps -ef | grep demo-todo-list | grep -v grep | awk '{print $2}' | xargs kill -15 | echo "todo list 服務不存在"

# 將舊的 jar 刪除
rm -rf demo-todo-list.jar

# 將新的 jar 重命名下
mv demo-todo-list*.jar demo-todo-list.jar

# 啟動我們的服務
nohup java -jar demo-todo-list.jar > /dev/null 2>nohup.log &

然后去到我們的服務器上看看相關情況,看看目錄結構以及服務的啟動日志:image.png
到這里,一個實戰的 Jenkins 任務就完成了。接下來就詳細說說任務配置中的各個設置項的意義。
在 Jenkins 任務的配置里面主要分如下幾個大類可以設置:【General】、【源碼管理】、【構建觸發器】、【構建環境】、【構建】以及【構建后操作】。
【General】主要是對任務進行一些前期的設置,里面一個重要的設置是【參數化構建過程】,例如我們可以通過參數來控制要構建哪一個分支,或者構建時會用到的參數也是通過這里配置,參數配置可以支持多種類型的參數,常見的有字符參數、密碼參數、布爾參數、選項參數、憑據參數和文件參數等。【源碼管理】很容易理解,我們的項目代碼都會通過代碼倉庫進行管理,目前 Jenkins 支持 Git、Mercurial 和 Subversion 等主流的源碼管理平台。【構建觸發器】可以設置為定時構建、輪詢 SCM(定時檢查源碼倉庫有新的代碼才構建)、觸發遠程構建(例如通過URL請求觸發)、其他工程構建后觸發等。【構建環境】主要是對構建進行一些環境准備,例如有時候構建項目時需要確保沒有其他無關文件的影響,就可以設置構建前刪除工作空間,如果需要證書密碼文件,可以配置添加需要的文件。【構建】就是真正的項目打包操作的,一般來講主要是將項目構建打包成 jar 包、war 包、可執行文件、安裝包、或者壓縮文件,舉個例子如果是 Maven 項目就執行 maven 的打包命令,Gradle 項目就執行 gradle 的打包命令。【構建后操作】主要是將打包出來的文件發送到某個地方以及一些通知相關的操作,例如我們打包的 Java 項目最終要部署到某台服務器,就通過 SSH 傳送文件完成,也可以將構建出來的文件進行存檔,還可以將文件上傳到OSS 等雲服務對象存儲里面。如果是構建失敗了我們需要立即知道,還可以配置郵件或者釘釘來立即通知我們。
image.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM