- 需求:項目經理想要將原型圖修改完后直接發布
前置條件:
-
已經有了svn服務器,並正常使用
-
已經有了jenkins服務器,之前搭建的gitlab+jenkins,
- 如需搭建jenkins,參考 https://www.cnblogs.com/lz0925/p/10858278.html,
- 如需自動部署到遠程服務器,參考 https://www.cnblogs.com/lz0925/p/10860460.html
步驟
-
1、首先在jenkins上添加svn憑據,配置svn權限
-
點擊憑據,然后點擊任一(global)進入憑據管理
-
點擊左側的添加憑據
-
其中的用戶名密碼,是svn的賬號密碼,填錯的話,創建jenkins任務時會提示
-
-
2、創建一個自由風格的jenkins項目
- General部分,根據自己需求設置,也可以不設置
- 源碼管理 ,這里的Credentials就是我們剛添加的svn賬號密碼,Repository URL 填寫項目地址
- 然后保存,在任務列表中找到剛建立的任務並點擊進入,點擊左側立即構建測試一下,如果正常,進行下一步
-
3、配置svn的鈎子
- 進入svn服務器,進入svn的鈎子目錄,我的目錄是/home/svn/MyRepository/hooks
- 下載jenkins命令行客戶端 wget http://172.168.50.41:9999/jnlpJars/jenkins-cli.jar,(如遇到權限問題,嘗試修改文件所屬用戶和組,我的用戶和組都是root)
- 復制一份post-commit.tmpl模板,名稱改為post-commit,賦予777權限
- vim post-commit
#!/bin/bash
# source /etc/profile
java -jar /home/svn/MyRepository/hooks/jenkins-cli.jar -s http://172.168.50.41:9999/ -auth admin:jinglan build svn_test
保存退出
其中
-s http://172.168.50.41:9999/ 是jenkins服務器
-auth admin:admin 是jenkins用戶名和密碼
-build svn_test 是指定構建jenkins的任務名稱,
其實這里還需要指定svn中的哪個項目的commit動作,觸發哪個jenkins的任務 ,
通過REPOS="$1" 判斷即可,
我這自動部署的項目都在gitlab上,svn僅部署項目經理用的這個文件夾,所以沒有進行判斷
- 現在可以在本地修改文件,通過svn的commit即可部署到指定服務器的指定目錄了。
- 如有jenkins不會用的,參考文章開頭的兩篇博客,如需構建后刪除舊文件的,可以自己寫文本,然后執行,或者直接將腳本寫到jenkins中