一、作用
項目中一直在用Jenkins
,但自己對這部分的開發(fā)參與的不是很多,最近準備畢設的時候才開始慌了,倒騰了大半天,之前也有人問我,就準備整理了下相關知識,也便以后回顧。
我們在做項目的時候簡單來說一般會有這五個步驟,開發(fā)—>提交—>編譯—>測試—>部署。人工的流程走就是把項目同步到Git
,再用 SSH
登錄服務器把項目pull
下來,再migrate
數據庫,運行單元測試和遷移靜態(tài)資源,項目每天都會有若干個commit
,在多人開發(fā)中帶來許多的不便。
為了減輕人為的操作,就可以使用Jenkins
來對項目進行持續(xù)集成。它可以幫你在寫完代碼后,一鍵完成開發(fā)過程中的一系列工作,就比如上面五個步驟中,除了第一步,后續(xù)的四步都可以自動化完成。具體的,當你完成了提交,Jenkins會自動運行你的編譯腳本,編譯成功后,再運行你的測試腳本,這一步成功后,接著它會幫你把新程序發(fā)布出去,完成部署。
Jenkins是一個持續(xù)集成工具,如大家所說相當于一個調度平臺,如果你的目的只是自動化部署的話,直接自己寫腳本或者用
Ansible
、Salt
、Puppet
、Chef
、Fabric
等自動化部署工具就行如果你是想在job
中加入自動話部署流程的話,可以先寫好自動化部署腳本然后在Jenkins
構建任務的Execute Shell
中調用相應的Script
。
重復單一易出錯的操作將慢慢被機器所取代,具體到軟件開發(fā)中就是,每次打包送測等操作是可以交給機器去自動執(zhí)行的。以前打包給測試的流程是,測試拿了好幾個手機過來,開發(fā)一一安裝,然后送給測試慢慢測試。使用了持續(xù)集成之后將變成,開發(fā)本地提交代碼,Jenkins等持續(xù)集成工具監(jiān)測到代碼變化,自動編譯打包,生成開發(fā)包,測試直接拿著開發(fā)包安裝測試即可。Jenkins做的操作其實很簡單,它只是將我們平時做的每一步重復的操作自動化了而已。
二、安裝(ubuntu16.04)
Jenkins
是開源的,使用Java
編寫的持續(xù)集成的工具
首先需要先安裝Java
,再執(zhí)行以下步驟
- 添加LTS版本PPA
$ wget -q -O - http://pkg.jenkins-ci.org/debian-stable/jenkins-ci.org.key | sudo apt-key add -
$ sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
- 更新源并安裝Jenkins
$ sudo apt-get update
$ sudo apt-get install jenkins
- 安裝后,Jenkins默認在8080端口上啟動,如果8080被用,可以配置其他,比如配置為8088
編輯 /etc/default/jenkins 并更新HTTP_PORT到8088。
HTTP_PORT=8088
- 啟動
Jenkins
服務
$ sudo service jenkins start
- 關閉
Jenkins
服務
$ sudo service jenkins stop
這時已經安裝成功,可以在瀏覽器訪問localhost:8088
-
首次進入,首先要輸入一個密鑰來進入
Jenkins
,密鑰可以在 /var/lib/jenkins/secrets/initialAdminPassword 獲取
復制命令行的密碼粘過來 -
選擇相應的選項來安裝插件,選擇系統(tǒng)推薦即可
installplugins.png -
會有失敗的情況,我搜了下,說不影響,很多由于從國外的網站下,失敗很正常,直接進行下一步,后面也可以再安裝
-
接下來可以為Jenkins設置一個管理員帳戶,以后就可以用它登錄到Jenkins了
填寫即可 -
Jenkins安裝向導成功完成后,就可以看到這個頁面啦
weblcome.png
三、安裝插件
Jenkins
提供了非常多的插件,幾乎你想要的插件全有,前提是你能找的到~官網提供了插件搜索功能,選擇Plugins
頁就可以各種搜索了。
安裝完成之后重啟Jenkins
這里推薦我們使用的幾個插件
要用Jenkins對項目進行持續(xù)集成,首先要在插件管理中下載好
Github Plugin
,使得Jenkins能操作Github
中的倉庫-
Dashboard
插件可以用來定義自己的Jenkins
主頁 Dashboard View
homepage.png -
Wall display
用來將jobs
的狀態(tài)更加直觀地顯示在大屏幕上。
display Jenkins
內置的郵件功能,它可根據構建的結果,發(fā)送構建報告,給當前的committer (用git做代碼管理) Email Extension Plugin 的配置
開發(fā)人員build project
之后,build結果無論是成功還是失敗,都要及時的通知組內其他成員了解最新情況,郵件通知這時候就派上用場
不知什么原因,用QQ郵箱配置失敗了,后面若成功了會把步驟貼上來,請參照這個鏈接 jenkins郵件擴展插件的使用