文章目錄
文本參數(string Parameter)
擴展選擇參數(Extended Choice Parameter)
git+jks構建
前言:
在寫pipeline或者在UI上構建job的過程,經常會發現某個job的配置應該是適用於幾個項目的(或者說是該項目的所有分支),這個情況下如果爲每個項目都配置job的話顯得十分的麻煩,一不留意也會出錯,所以這個情況需要使用jenkins的參數化構建job了。
使用git實現參數構建,需要git服務
寫好了源碼,使用jks做一個集成
對項目進行有效構建,相當於編譯安裝的configure和make過程
發佈相當於make install
在git中,上傳一個項目,會把項目上傳到主分支master中,branch 分支
jks發現後會把代碼勾過來,然後集成測試發佈,發佈到指定的服務器上
一:參數化構建概述
需要安裝插件:Extended Choice Parameter與Git Paramete
master分支下main還會在做一個分支new
jks一旦發現master更新完了,就會自動集成測試發佈
如果想讓當前業務先不暫時發佈,就新建一個分支然後放進去,會先去集成,然後測試,不會發布,若是沒有問題,就會告訴管理者,
管理者會合並分支,然後master分支自動執行集成測試發佈
二:普通參數化構建
2.1 進入任務中的配置
2.2 添加參數
翻譯下
2.3 選擇密碼參數
名稱可以理解爲變量名,默認值爲參數,數據類型
2.4 再選擇字符參數和文本參數
注意
常見的參數有兩種:字符參數和文本參數
#構建 —> 執行shell,需要先安裝插件
執行字符參數(string Parameter)構建
2.5 安裝插件:Post Build task
2.6 編輯構建,添加shell,這裏構建的是文本參數(string Parameter)
2.7 點擊構建
#執行任務 "Build with Parameters"
點擊開始構建
2.8 查看控制檯輸出結果
備註:#可以在分支中使用
三:安裝Extended Choice Parameter(擴展選擇參數)插件,完成構建
3.1 管理jenkins —> 管理插件 —> 可選插件 —> 過濾"Extended Choice Parameter" —> 直接安裝(安裝完成可以返回工作臺)
不能有中文
single Select 單選
test01,test02,test03 對應名稱branch的值
Deilimiter 分隔符逗號
3.2 調用
開始構建
3.3 編寫property文件
property會放到緩存,jks會從緩存中遍歷
[root@jenkins ~]# vim /opt/jenkins.property
abc=u01,u02,u03
在選擇源值中,選擇property文件
應用保存
3.4 可以指定參數來構建
#注意!!!!!!!
用途可以定義不同的分支
jks和git可以構建
jks和docker 可以構建
四:Git參數化構建插件
Git參數化構建
4.1 需要插件:Git Paramete
4.2 源碼服務器創建分支提交遠程github
[root@source demo]# git checkout -b dev #創建一個分支名爲dev
Switched to a new branch 'dev'
[root@source demo]# echo "hello world" > test.txt #創建一個測試文件
[root@source demo]# git add test.txt #add添加測試文件到本地緩存
[root@source demo]# git commit -m "add test.txt" #提交到本地倉庫,名爲add test.txt
[dev 94fb946] add test.txt
1 file changed, 1 insertion(+)
create mode 100644 test.txt
[root@source demo]# git push origin dev #提交到遠程git倉庫origin主機
Username for 'https://github.com': gsy-0519
Password for 'https://[email protected]':
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 270 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
remote:
remote: Create a pull request for 'dev' on GitHub by visiting:
remote: https://github.com/gsy-0519/2020531/pull/new/dev
remote:
To https://github.com/gsy-0519/2020531.git
* [new branch] dev -> dev
[root@source demo]# git branch #查看分支
* dev
master
4.3 修改倉庫的url,指向本地的git
[root@source demo]# vim .git/config
[root@source demo]#
url = [email protected]:/home/git/repos/demo.git #修改成本地倉庫路徑
[root@source demo]# git checkout -b dec #創建一個分支
Switched to a new branch 'dec' #切換到一個新分支‘dec’
[root@source demo]# echo "hello world" > test1.txt
[root@source demo]# git add test1.txt #添加文件到本地倉庫緩存層
[root@source demo]# git commit -m "add test1.txt" #提交到本地倉庫
[dec d8bee9e] add test1.txt
1 file changed, 1 insertion(+)
create mode 100644 test1.txt
[root@source demo]# git push origin dec #上傳到dec分支中origin主機
Counting objects: 6, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 502 bytes | 0 bytes/s, done.
Total 5 (delta 1), reused 0 (delta 0)
To [email protected]:/home/git/repos/demo.git
* [new branch] dec -> dec
[root@source demo]# git branch #查看當前本地分支
* dec
dev
master
- 此時git服務器有兩個分支
[git@git demo.git]$ git branch
dec
* master
4.4 使用git parameter插件——git參數
git parameter
應用保存
4.5 生成密鑰對 上傳至git服務器
[root@jenkins ~]# ssh-keygen -t rsa
[root@jenkins ~]# ssh-copy-id -i .ssh/id_rsa.pub [email protected]
4.6 修改jks配置文件,指定使用者爲root
[root@jenkins ~]# vim /etc/sysconfig/jenkins
29 JENKINS_USER="root"
[root@jenkins ~]# systemctl restart jenkins
4.7 設置git源碼路徑
[root@jenkins ~]# yum install git -y
Credentials添加指定爲ssh
添加
然後保存,出現錯誤
刪掉之前的一個property文件然後應用保存,因爲會衝突
4.8 構建項目
查看運行結果
[root@jenkins ~]# cd /var/lib/jenkins/workspace/A-web/
.git/ pom.xml src/ target/ test1.txt test.txt
[root@jenkins ~]# cd /var/lib/jenkins/workspace/A-web/
[root@jenkins A-web]# ls
pom.xml src target test1.txt test.txt