1Jenkins集成Github和Git實現(xiàn)自動化部署
1.1Git和Github的區(qū)別
Github是一個基于Git的項目托管平臺媚狰,GitHub 的替代產(chǎn)品有哪些?
Github和Gitlab的區(qū)別躯嫉?
1.2服務器上安裝Java
[root@localhost ~]# yum install java
[root@localhost ~]# java -version
1.3服務器上安裝Git
[root@localhost ~]# yum install git
[root@localhost ~]# git version
1.4服務器上安裝Tomcat
下載地址:https://tomcat.apache.org
[root@localhost ~]# yum install wget
[root@localhost ~]# wget http://mirrors.koehn.com/apache/tomcat/tomcat-9/v9.0.11/bin/apache-tomcat-9.0.11.zip
[root@localhost ~]# yum install unzip
[root@localhost ~]# unzip apache-tomcat-9.0.11.zip
[root@localhost apache-tomcat-9.0.11]# chmod a+x -R *
[root@localhost apache-tomcat-9.0.11]# bin/startup.sh
[root@localhost apache-tomcat-9.0.11]# ps -ef|grep tomcat
開放8080接口
[root@localhost apache-tomcat-9.0.11]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
[root@localhost apache-tomcat-9.0.11]# firewall-cmd --reload
# 查看防火墻
[root@localhost apache-tomcat-9.0.11]# firewall-cmd --list-all
驗證:http://192.168.137.136:8080/
1.5服務器上安裝Maven
[root@localhost ~]# wget http://mirror.metrocast.net/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.zip
[root@localhost ~]# unzip apache-maven-3.5.4-bin.zip
配置
[root@localhost ~]# cd apache-maven-3.5.4
[root@localhost apache-maven-3.5.4]# pwd
[root@localhost apache-maven-3.5.4]# yum install vim
[root@localhost apache-maven-3.5.4]# vim /etc/profile
#在profile文件末尾加上這兩句:
export MAVEN_HOME=/root/apache-maven-3.5.4
export PATH=$MAVEN_HOME/bin:$PATH
#保存profile文件
[root@localhost apache-maven-3.5.4]# . /etc/profile
驗證
[root@localhost apache-maven-3.5.4]# mvn -version
1.6本地Windows安裝Jenkins
1.6.1下載jenkins.war到C:\Jenkins,下載地址:https://jenkins.io杨拐,打開cmd
用命令來安裝Jenkins失敗祈餐,可以直接跳到下一段;
C:\Jenkins>java -jar jenkins.war
出現(xiàn)了一個錯誤
SEVERE: Running with Java class version 54.0, but 52.0 is required.Run with the --enable-future-java flag to enable such behavior.
Java SE 8 = 52, Jenkins requires Java 8, but you are running 10.0.1+10 from C:\Program Files\Java\jre-10.0.1
C:\Jenkins>java --add-modules java.xml.bind -jar jenkins.war --enable-future-java --httpPort=8080 --prefix=/jenkins
最后通過java -jar的方式來啟動Jenkins還是沒有成功:(
雖然成功獲取了如下信息:
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
70baae147267441183b646a27c26c8ef
This may also be found at: C:\Users\hylyn\.jenkins\secrets\initialAdminPassword哄陶。
1.6.2直接安裝Windows安裝包
下載地址:https://jenkins.io帆阳,選擇Windows版
initialAdminPassword:bd498f0a059441818443819ccc54176e
安裝成功:http://localhost:8080/
1.6.3安裝插件
2個插件:Rebuilder和Safe Restart
1.6.4新建節(jié)點
新建一個節(jié)點DIT,開放22端口
[root@localhost apache-maven-3.5.4]# firewall-cmd --zone=public --add-port=22/tcp --permanent
[root@localhost apache-maven-3.5.4]# firewall-cmd --reload
1.6.5測試一個任務
測試成功屋吨,證明Jenkins能正常在Linux服務器上運行
http://localhost:8080/job/TestTask/1/console
1.7本地安裝Git
1.7.1選定項目目錄
clone到本地失敗蜒谤,需要配置與Github的通信
$ git clone git@github.com:hylyn/order.git
1.7.2配置本地Git與Github通信的公鑰
$ git config --global user.name "xxx"
$ git config --global user.email "xxx@gmail.com"
$ ssh-keygen -t rsa -C "xxx@gmail.com"
1.8自動化部署
1.8.1出錯信息1
配置Git在本地的運行地址
且需配置Git在Linux虛擬機上的運行地址
1.8.2出錯信息2
需配置服務端的Git
在服務器上建立Git與Github通信的公鑰
[root@localhost ~]# git config --global user.name "hylyn"
[root@localhost ~]# git config --global user.email "hylyn@gmail.com"
[root@localhost ~]# ssh-keygen -t rsa -C "hylyntan@gmail.com"
[root@localhost ~]# vim /root/.ssh/id_rsa.pub
在Github上添加公鑰后
[root@localhost ~]# ssh git@github.com
執(zhí)行任務成功山宾,總結一下,Windows上集成自動部署有三大坑:
1) 無法用Java 10運行jar包鳍徽,然后無法在Windows上安裝Jenkins;
2) 本地Git的安裝和與Github的通信资锰;
3) 虛擬機上Git的安裝和與Github的通信;
最后終于成功,截圖留念:
1.8.3發(fā)布到Linux服務器
需要在服務器上安裝MySQL
更新pom文件
在服務端安裝JDK,解決‘No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?’的問題
yum install java-1.8.0-openjdk-devel.x86_64
或嘗試
yum install java-1.8.0-openjdk
或
yum install java-1.8.0-openjdk-devel
1.9開源自己的項目到Github
1.9.1在另一臺電腦上建立Git與Github通信的公鑰
$ git config --global user.name "hylyn"
$ git config --global user.email "hylyn@gmail.com"
$ ssh-keygen -t rsa -C "hylyntan@gmail.com"
配制公鑰到自己的Github賬號:
Settings - SSH and GPG keys
1.9.2Github主頁https://github.com/創(chuàng)建New repository所森,項目在Github上就叫倉庫
1.9.3版本線的概念
C2(子版本)指向C1(父版本) : C2—>C1
1.9.4命令
$ git init
$ git add .
$ git commit -m "first commit"
$ git remote add origin git@github.com:hylyn/samemart-monolith.git
$ git pull origin master
$ git push -u origin master
fatal: refusing to merge unrelated histories的解決方法
git pull origin master --allow-unrelated-histories
1.9.5劃重點
A. 本地倉庫由git維護的三棵“樹"組成:第1個是工作目錄乌妒,它持有實際文件(即可以直接打開修改的文件);第2個是緩存區(qū)(index)涤妒,它像個緩存區(qū)域,臨時保存你的改動;最后一個是HEAD懊缺,指向你最近一次提交后的結果(這個結果還是在本地電腦里面)
B. git push -u origin master相當于 git push origin master 加上 git branch --set-upstream-to=origin/master master
C. git pull origin feature/UX-1400相當于git fetch origin 加上 git merge origin/feature/UX-1400
D. 當團隊協(xié)助時,需從自己修改的分支上拉代碼到Master分支上(pull request)培他;
完整流程:github的項目—>fork到自己的github網(wǎng)站分支—>clone到自己的本地版本—>修改后push到自己的github網(wǎng)站分支—>將自己gitub網(wǎng)站分支pull request到github的原項目
1.9.6清除不想add的文件
$ git reset --hard origin/master
$ git clean -fd
$ git gc
截圖留念:
1.9.6在相應文件夾下用Git Bash創(chuàng)建.gitignore文件
$ touch .gitignore
1.9.7從Github網(wǎng)站創(chuàng)建.gitignore文件
1.9.8從另一臺電腦clone
$ git clone https://github.com/hylyn/samemart.git
1.9.9兩個非常容易混淆的博主
https://www.liaoxuefeng.com/
http://www.ruanyifeng.com