爲何要用自動集成,固然是爲了減小重複操做啦(懶是第一輩子產力!)html
例如在工做中,寫完業務開發,將代碼提交到Git以後,還要本身打包、部署,一兩次還行,若是屢次提交代碼,而後重複的打包、部署,那不得浪費不少時間,因此咱們須要自動集成CI,幫助咱們解決代碼提交後的事情~~linux
因此此次學習了用的比較多的Jenkins工具啦git
Jenkins官網github
Build great things at any scale
The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.
複製代碼
正如它所說的:做爲領先的開源自動化服務器,Jenkins提供數百個插件來支持構建,部署和自動化任何項目。例如Git插件、自動部署的Deploy插件、代碼質量Sonar等等好用的插件,給Jenkins增添了豐富的功能。web
此次搭建的Demo是使用Jenkins給Hexo進行持續集成(固然若是小夥伴不想專門弄一個服務器搭建Hexo,能夠直接使用GitHub爸爸現成的GitHub page~~)shell
安裝Jenkins(Linux的yum就很好用啦:yum install -y jenkins) 安裝Jenkins後,要記得在插件界面安裝git plugin~~ 而後能夠經過systemctl start jenkins,在linux機器上做爲服務來啓動npm
安裝Hexo(詳細查看官網,還能選擇不少好看的樣式~)bash
$ npm install hexo-cli -g
$ hexo init blog
$ cd blog
$ npm install
$ hexo server
複製代碼
這時能夠查看服務器對應的ip加上默認的端口號4000,查看搭建出來的Hexo默認界面~服務器
在服務器安裝Git服務,生成公鑰(~/.ssh/id_rsa.pub)和私鑰(~/.ssh/id_rsa)。hexo
在GitHub的用戶Setting中添加公鑰(這個你們應該都知道,就不貼圖了)
Jenkins憑據中,配置祕鑰(注意,是祕鑰,路徑~/.ssh/id_rsa)
記得將待會生成的密碼保存下來,由於下一次你就看不見了=-=
在GitHub中新建兩個一個倉庫(個人叫test_blog)
在Jenkins中的【系統配置】->【全局配置】添加GitHub服務器
新增的憑據選擇
在Jenkins中,新建一個自由風格的任務(高度可配置化hhh)
配置Git項目地址
在原代碼配置項中,選擇git,將項目地址填上,還有選擇上一步填寫的憑據~
填寫構建觸發器
編寫Execute執行腳本
寫完腳本後點擊保存,以後基本就是一勞永逸,不須要再去關注寫完文章的後續操做~~
在本地編寫文章後,推送到github,點擊查看Jenkins的github hook輸出記錄,能夠發現已經在構建了,只要你的shell腳本寫的對,那就能直接觀察到服務器上的博客內容成功更新~~
在webhooks上弄了好久,一開始在github的項目裏配置好鉤子,而後想直接按照第二條參考資料中設置,直接覆蓋全部鉤子,後來提示403訪問錯誤
因而就參考了第一條和第三條參考資料,配置了person access token,在構建中選擇了secret text纔算成功配置好鉤子~~
PS: 這樣會將本身的md文件暴露在公共github中,實際上是不妥的,比較建議是本地打包,而後將生成好的界面拷貝到本身的服務器,具體能夠看下第一條參考資料。(其實就是看你shell腳本怎麼寫啦✧(≖ ◡ ≖✿)嘿嘿)
但願各位幫忙點個star,給我加個小星星✨