利用Jenkins實現往github提交代碼後自動部署打包

前言

本地寫好代碼後部署到服務器的tomcat上確實是一件麻煩的事情,須要先打成war包,再上傳到服務器,再啓動tomcat,確實是一件麻煩的事情,做爲程序員豈能作這種重複且沒有技術含量的事情,因而就想到了利用jekins來進行自動化,我只負責提交代碼,別的就無論了,也是一件很棒棒的事情.java

事前準備

  1. maven(下載壓縮包以後直接解壓 再配置下環境變量 這是爲了能夠直接使用mvn clean install命令)
vim /etc/profile
//在這個文件末尾加上
export MAVEN_HOME=/root/maven3.4.5 
export PATH=$MAVEN_HOME/bin:$PATH
//保存後在命令行輸入,啓動配置
. /etc/profile
export下看下輸出看看配置成沒成功
複製代碼
  1. jdk(我選擇的是java8,反正安裝教程網上一搜大把,這裏不作贅述)
  2. git(yum -y install git 注意可能有git版本不夠的問題 建議centos版本不夠的仍是自行下載安裝) 4.jenkins(建議你們仍是取jenkins官網去下載最新的版本,我是用rpm安裝的,固然docker也能夠,但docker進行某些配置的時候可能會遇到目錄和路徑的問題,須要掛載目錄,實在讓人腦袋疼)
rpm -ivh jenkins-2.175-1.1.noarch.rpm
vi /etc/sysconfig/jenkins
#修改用戶和端口(這裏不是再最後面添加了 是修改本來就有的值)
JENKINS_USER="root"
JENKINS_PORT="8888"
systemctl start jenkins
#這時候就能夠直接訪問IP+8888來進行安裝啦 以後會跳出一個須要密碼的界面 去提示的路徑獲取密碼 而後選擇建議安裝 而後等待安裝好插件就能夠了
複製代碼

5.mysql8(我是選擇docker安裝的方式 由於快 沒裝docker的能夠去百度下怎麼安裝docker)mysql

docker pull mysql:8.0
# --restart-always: docker服務啓動時,自動啓動容器,而且當容器中止時,嘗試重啓容器。
# MYSQL_ROOT_PASSWORD: root帳號的密碼
# --character-set-server --collation-server 默認數據庫編碼和默認排序
docker run --name mysql -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=root -v /var/lib/mysql/:/var/lib/mysql/ -d mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
docker exec -it mysql /bin/bash
mysql -uroot -p root
#先更改ser表中用戶爲root的host字段,使他能夠遠程訪問
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
flush privileges;
複製代碼

正文

一切順利的話,你會進入到以下的界面中(也許會有點點不同 由於我有新建任務了):git

要想實現自動化部署打包,首先jenkins得有權限從github那邊拿到代碼,而後每次提交代碼github得可以通知到jenkins.前者咱們在github裏面配置私有token,後者利用github的webhook來進行.程序員

1.配置token:github->setting->developer setting->personal access tokens->generate new token(而後scopes選擇admin和admin:repo_hook就好了.cretae以後會返回給你一個token,本身先保存此token,若是丟失,以後再也沒法找到這個token.請注意這個token 它很重要 也就是後文中出現屢次的secret text )github

2.配置webhook:(把圖中的ip換成本身的就能夠了 注意這裏的github-webhook是須要你安裝好了github插件才能夠正確回調的,因此確認本身的插件安裝好了,沒有的話 jenkins中:系統管理-->插件管理-->可選插件 找到github插件並安裝 )

3.確認jenkins中已安裝好github插件,沒有的話去插件管理裏面去搜索安裝,接下來去配置認證. 系統管理 --> 系統設置 --> GitHub Server --> 添加web

注意secret填寫以前github那邊獲取到的token,id能夠不填,描述就灑灑水啦. sql

設置完成後,點擊TestConnection,提示Credentials verified for user xxxx, rate limit: xxx,則代表有效。docker

4.系統管理-->全局工具管理->設置好你以前安裝好的jdk git maven路徑.shell

5.固然是最激動人心的環境 新建任務(選擇一個自由風格的任務): 1).填寫項目描述和項目主頁(github上的地址,注意不是下載的git地址,是項目主頁,github.com/本身用戶名/項目名的那個)數據庫

2).源碼管理(Credentials 選擇本身以前建立好的那個,源代碼瀏覽器配置以後能夠在jenkins查看github的代碼,最Additional Behaviours->check out to an sub-directory 是把項目下載到這個文件夾裏面 下面配置路徑的時候要注意)
3).構建觸發選擇當接收到github hook的時候 構建環境選擇使用secret text(也就是以前github裏面的那個token)
4).構建的操做,執行shell命令,注意操做仍是經過sh腳原本完成的

sh腳本(注意win狀態下編輯可能會產生^M的狀況 用vim-b來進行查看並修改) 附上

5).構建後操做選擇set github status就能夠啦

而後提交代碼享受自動打包部署的快感吧. (ps:本人打包的時候老是報 mvn clean install的錯誤 查找屢次後發現是本身配置的war包打包插件的路徑配置的不對,折騰了很長時間,你們有報錯的能夠看任務的輸出日誌來定位查找狀況)

才疏學淺 錯漏之處在所不免

相關文章
相關標籤/搜索