前言:該系列文章,圍繞持續集成:Jenkins+Docker+K8S相關組件,實現自動化管理源碼編譯、打包、鏡像構建、部署等操作;本篇文章主要描述Jenkins基礎用法。
一、Jenkins安裝
1、環境部署
下載Jenkins包
注意這里直接下載war文件,以Java服務的形式啟動。
- 環境:war運行
- 版本:2.289.3
- 類型:Generic Java package (.war)
啟動命令
java -jar jenkins.war --httpPort=8090
啟動日志
Jenkins is fully up and running
訪問本地端口:8090
該頁面會提示初始登錄密碼的位置,查看該文件中初始密碼,並完成登錄。
/.jenkins/secrets/initialAdminPassword
安裝推薦插件
登錄之后先把推薦的插件裝上。
創建用戶
插件安裝完成之后會提示創建用戶。
賬號:admin 密碼:admin
這樣初始化完成。
重新啟動:restart
Jenkins_url/restart
2、配置與插件
基礎配置
打開:Manage-Jenkins
選項,配置Global-Tool-Configuration
選項:
- 查看JDK安裝目錄
/usr/libexec/java_home -V
- 查看Git安裝目錄
which git
- 查看Maven安裝目錄
mvn -v
配置組件:JDK、Git、Maven,采用開發環境的組件版本;
插件安裝
安裝如下插件:
1、Maven插件
Maven Integration plugin
2、Pipeline插件
Pipeline Utility Steps
二、本地Git打包
簡介:基於Jenkins完成本地的Git倉庫項目打包;
1、新建Item
- 任務名稱:MavLoc,處理本地maven工程;
- 任務類型:選擇構建maven項目;
2、構建記錄管理
保持構建的天數:3天,保持構建的最大個數:10個;
3、構建過程
前置Pre-Steps
步驟,這里執行一次maven版本查看:
構建Build
步驟,這里直接寫項目的pom路徑,注意執行的maven命令:
clean package -Dmaven.test.skip=true
后置Post Steps
步驟,注意選擇構建成功后才執行,自行忽略這里shell語法的不入流組合:
#!/bin/bash
BUILD_ID=dontKillMe
# 定義目錄
AUTO_PATH=/項目路徑/butte-auto-parent/
# 移動Jar包
cd $AUTO_PATH/auto-client/target/
pwd
mv auto-client-1.0-SNAPSHOT.jar $AUTO_PATH
cd $AUTO_PATH/auto-serve/target/
pwd
mv auto-serve-1.0-SNAPSHOT.jar $AUTO_PATH
# 啟動服務
cd $AUTO_PATH
nohup java -jar auto-client-1.0-SNAPSHOT.jar &
echo "run auto-client ..."
sleep 20s
nohup java -jar auto-serve-1.0-SNAPSHOT.jar &
echo "run auto-serve ..."
4、執行構建
上述配置完成后,打開任務頁面,執行如下操作:
- Build Now:執行上面的構建任務;
- 構建 #ID:查看控制台輸出的日志;
這樣就可以通過jenkins完成本地項目的打包和啟動了。
三、API觸發任務
1、用戶令牌
簡介:通過配置用戶API訪問的token令牌,脫離jenkins控制台,直接觸發構建任務;
進入用戶面板的設置選項,配置API Token
:
注意這里生成令牌后要立刻復制下來,頁面會提示token無法復現。
2、任務令牌
任務配置的構建觸發器模塊,設置遠程構建的令牌:
上面已經給到token的使用方式。
3、腳本觸發
通過如下方式,直接觸發上述構建任務的流程:
curl http://用戶:令牌@Jenkins_Url/job/MavLoc/build?token=任務令牌
這里通過腳本直接請求URL的方式觸發流程。
四、打包Git項目
1、配置倉庫
創建MavGit任務,這里不做過多的配置,與本地倉庫相比,只是把倉庫地址換成Gitee地址,只配置倉庫url和分支即可,其他采用默認:
因為是開放的倉庫地址,所以不用配置賬號密碼,默認指定master分支,然后執行build構建。
2、查看空間
上面流程執行完后,查看MavGit的工作空間:/.jenkins/workspace/MavGit
:
這里可以明顯發現,倉庫的代碼已經被pull下來,並且完成了自動打包流程,后續結合shell腳本完成jar啟動管理即可。
同系列文章:┃ 服務部署發布 ┃ 灰度模式 ┃ 自動化流程 ┃ 消息中間件改造 ┃ 微服務組件二次淺封裝 ┃
五、源代碼地址
GitEE·地址
https://gitee.com/cicadasmile/butte-auto-parent
Wiki·地址
https://gitee.com/cicadasmile/butte-java-note/wikis