<ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>


      前言

        什么是持續(xù)集成呢?Continuous integration(CI)。
      持續(xù)集成是一種軟件開發(fā)實(shí)踐,即團(tuán)隊(duì)開發(fā)成員經(jīng)常集成他們的工作,通常每個(gè)成員至少集成一次,也就意味著每天可能會發(fā)生多次集成。每次集成都通過自動化的構(gòu)建(包括編譯,發(fā)布,自動化測試)來驗(yàn)證,從而盡快地發(fā)現(xiàn)集成錯(cuò)誤。許多團(tuán)隊(duì)發(fā)現(xiàn)這個(gè)過程可以大大減少集成的問題,讓團(tuán)隊(duì)能夠更快的開發(fā)內(nèi)聚的軟件。

        如果沒有持續(xù)集成會有哪一些問題呢?模塊項(xiàng)目接口部署不及時(shí),接口不通。每次需要手動打包最新的代碼進(jìn)行部署、發(fā)布代碼、線上部署都是純手工。容易出錯(cuò)。浪費(fèi)時(shí)間。

        現(xiàn)在加上持續(xù)集成解決的問題呢?項(xiàng)目構(gòu)建自動化、集成的詳細(xì)信息及歷史記錄的記錄、使用統(tǒng)一的管理、固定規(guī)定的部署流程、每天至少集成一次。

      安裝

      ?

        這里我采用的是使用Tomcat配合jenkins一起使用的來達(dá)成持續(xù)集成的目的。

        一、安裝Tomcat

          從官網(wǎng)下載Tomcat。下載地址:http://tomcat.apache.org/。 <http://tomcat.apache.org/。>

      ?

      ?

      ?

      ?

          這里我選擇的是32-bit/64-bit Windows Service Installer
      <http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.45/bin/apache-tomcat-8.5.45.exe>
      ?(pgp
      <https://www.apache.org/dist/tomcat/tomcat-8/v8.5.45/bin/apache-tomcat-8.5.45.exe.asc>
      ,?sha512
      <https://www.apache.org/dist/tomcat/tomcat-8/v8.5.45/bin/apache-tomcat-8.5.45.exe.sha512>
      )這個(gè)版本。然后依次安裝就可以了。

      接下來配置環(huán)境變量:

      一、修改設(shè)置:CLASSPATH:(.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%)。注意是第一個(gè)符號點(diǎn)??!

      二、新增設(shè)置:CATALINA_HOME:(D:\tool\apache-tomcat-7.0.57)括號內(nèi)為路徑名。

      三、修改設(shè)置:path:(;%JAVA_HOME%;%JRE_HOME%\jre\bin)若以前配置java環(huán)境時(shí)配置過則不要再次配置。

          ?安裝就差不多完成了,我們在瀏覽器輸入http://localhost:8080/來看看是否出現(xiàn)以下頁面,出現(xiàn)了的話就說明安裝成功了。

      ?

      ?

      ?

      ?

      ?

        二、安裝JDK

          安裝JDK可以查閱這篇文章——https://www.runoob.com/java/java-environment-setup.html
      <https://www.runoob.com/java/java-environment-setup.html>

        三、安裝Jenkins

        一切準(zhǔn)備就緒之后,就開始安裝jenkins了,下載地址:https://jenkins.io/download/
      <https://jenkins.io/download/>。前往地址下載jenkins的
      war包。然后將war包放置在前面安裝的Tomcat的目錄之下(C:\Program Files\Apache Software
      Foundation\Tomcat 8.5\webapps——我的地址是這個(gè))。

      然后在瀏覽器中輸入http://localhost:8080/jenkins/ <http://localhost:8080/jenkins/>。
      訪問,安裝成功的話就會出現(xiàn)jenkins的界面



      ?

      ?

      ?

      這里根據(jù)提示我們找到目錄之下就可以獲取密碼了。接下來會出現(xiàn)插件安裝的一個(gè)選擇,新手直接選擇新手入門推薦安裝就好了。

      ?

      ?

      ?

      ?

      ?

      ?

      這里有時(shí)會出現(xiàn)安裝失敗或者鏈接失敗的情況,多試幾次就好了。一般是網(wǎng)絡(luò)的問題。

      ??

      ?

      ?

      ?

      ?

      創(chuàng)建管理員用戶之后就可以正式開始配置jenkins了。

      配置

      一、插件安裝

        這里需要安裝暫且有三個(gè)插件,一個(gè)是MSBuild Plugin
      <http://wiki.jenkins-ci.org/display/JENKINS/MSBuild+Plugin>、一個(gè)是 Publish Over SSH
      、一個(gè)是Email Extension Plugin
      <https://wiki.jenkins-ci.org/display/JENKINS/Email-ext+plugin>
      。前者是用來作為編譯的插件,后者是用來作為連接服務(wù)器的插件、最后一個(gè)則是用來配置郵件發(fā)送的插件了。

      ??



      ?

      ?

      二、郵箱配置

        進(jìn)入系統(tǒng)設(shè)置,正式開始配置郵件發(fā)送的配置。

      ?

      ?

      ?

      ?

        首先找到Jenkins Location設(shè)置系統(tǒng)管理員的郵件地址。

      ?

      ?

      ?

      ?

        然后找到Extended E-mail Notification設(shè)置,這里就可以開始設(shè)置郵件的發(fā)送配置了。這里我采用的是qq郵箱的配置。?



      ?

      ?



      ?

      ?



      ?

      ?

      ?

      ?

      ?

      SMTP server——SMTP 服務(wù)器的配置

      Default user E-mail suffix——默認(rèn)電子郵件的后綴

      User Name——這里設(shè)置的是發(fā)件人信息([email protected]在這里就輸入12345678)

      Password——這里不是填寫密碼,這里輸入的是開通SMTP 的授權(quán)碼

      SMTP port——SMTP 默認(rèn)端口開啟465

      Default Content Type——郵件內(nèi)容的格式

      Default Recipients——默認(rèn)收件人

      Default Subject——默認(rèn)主題

      Default Content——默認(rèn)內(nèi)容

      ?

      郵件通知內(nèi)容的配置的模板:

      ?
      <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>${ENV, var="
      JOB_NAME"}-第${BUILD_NUMBER}次構(gòu)建日志</title> </head> <body leftmargin="8"
      marginwidth="0" topmargin="8" marginheight="4" offset="0"> <table width="95%"
      cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma,
      Arial, Helvetica, sans-serif"> <tr> 本郵件由系統(tǒng)自動發(fā)出,無需回復(fù)!<br/>
      各位同事,大家好,以下為${PROJECT_NAME }項(xiàng)目構(gòu)建信息</br> <td><font color="#CC0000">構(gòu)建結(jié)果 -
      ${BUILD_STATUS}</font></td> </tr> <tr> <td><br /> <b><font color="#0B610B"
      >構(gòu)建信息</font></b> <hr size="2" width="100%" align="center" /></td> </tr> <tr>
      <td> <ul> <li>項(xiàng)目名稱 : ${PROJECT_NAME}</li> <li>構(gòu)建編號 : 第${BUILD_NUMBER}次構(gòu)建</li>
      <li>觸發(fā)原因: ${CAUSE}</li> <li>構(gòu)建狀態(tài): ${BUILD_STATUS}</li> <li>構(gòu)建日志: <a href="
      ${BUILD_URL}console">${BUILD_URL}console</a></li> <li>構(gòu)建 Url : <a href="
      ${BUILD_URL}">${BUILD_URL}</a></li> <li>工作目錄 : <a href="${PROJECT_URL}ws"
      >${PROJECT_URL}ws</a></li> <li>項(xiàng)目 Url : <a href="${PROJECT_URL}"
      >${PROJECT_URL}</a></li> </ul> <h4><font color="#0B610B">失敗用例</font></h4> <hr
      size="2" width="100%" /> $FAILED_TESTS<br/> <h4><font color="#0B610B"
      >最近提交(#$SVN_REVISION)</font></h4> <hr size="2" width="100%" /> <ul>
      ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d
      [%a] %m</li>"} </ul> 詳細(xì)提交: <a href="${PROJECT_URL}changes"
      >${PROJECT_URL}changes</a><br/> </td> </tr> </table> </body> </html>
      ?

      ?

      三、?Publish over SSH配置

      接下來我們就開始配置SSH連接服務(wù)器配置了。

      ?

      ?

      ?

      ?

      ?

      按照上面的配置進(jìn)行設(shè)置就可以了。

      Passphrase——密碼或密鑰

      Name——此連接服務(wù)的名稱

      Hostname——服務(wù)器的地址

      Username——服務(wù)器用戶名

      Remote Directory——傳輸?shù)倪h(yuǎn)程目錄

      Use password authentication, or use a different key——此選項(xiàng)可另設(shè)置其他的密碼

      四、?全局工具配置

      進(jìn)入Global Tool Configuration設(shè)置全局工具設(shè)置,這里首先我們得設(shè)置git,這個(gè)不設(shè)置后面可能就拉取不到代碼了。再然后設(shè)置MSBuild
      ,這個(gè)設(shè)置就是用來給項(xiàng)目進(jìn)行編譯的。

      ?

      ?

      ?

      ?

      構(gòu)建

      到這里安裝和配置都已經(jīng)結(jié)束了。我們可以正式開始構(gòu)建項(xiàng)目了。這里我們分為對.Net 和.Net Core項(xiàng)目進(jìn)行集成。配合使用則是Git進(jìn)行代碼的提交及拉取。

      這里我們選擇開始構(gòu)建一個(gè)自由風(fēng)格的項(xiàng)目。

      ?

      ?

      然后進(jìn)行項(xiàng)目描述填寫

      ?

      ?

      ?

      ?

      這里就開始設(shè)置源代碼管理了。選擇git并輸入地址。隨后點(diǎn)擊高級,設(shè)置用戶名和密碼,然后返回此頁面選擇剛設(shè)置的證書即可

      ?

      ?

      ?

      ?

      然后開始構(gòu)建觸發(fā)器,這里我設(shè)置的觸發(fā)器的時(shí)間是每分鐘輪詢是否觸發(fā)。時(shí)間大家可以根據(jù)情況而定

      ?

      ?

      ?

      ?

      這里的構(gòu)建環(huán)境,大家可以視情況而定。

      ?

      ?

      ?

      ?

      到這里就正式開始構(gòu)建配置了。這里我選擇的是使用MSBuild構(gòu)建VS項(xiàng)目。

      ?



      ?

      ?
      /t:Rebuild /p:Configuration=Release /p:DeployOnBuild=true;PublishProfile=
      FolderProfile/p:OutputPath=D:\Jenkins_Publish
      ?
      MSBuild Build
      File——構(gòu)建的目錄(例如我的就填寫的C:\Windows\ServiceProfiles\LocalService\.jenkins\workspace\Test_Net\WebApplication1\WebApplication1.csproj)
      Command Line Arguments——構(gòu)建的命令 Rebuild ——重新生成 Configuration=Release——生成Release版本
      DeployOnBuild=true;PublishProfile=
      FolderProfile——設(shè)置運(yùn)行部署生成,并且執(zhí)行FolderProfile目錄下的生產(chǎn)目錄(FolderProfile文件在Properties目錄中)
      OutputPath——輸出路徑
      ?

      這里我看開始配置構(gòu)建完成之后的操作的短信配置了。

      ?





      ?

      ?

      ?

      ?

      到這里就已經(jīng)都配置完成了,我們可以返回主頁面開始構(gòu)建了。

      ?

      ?

      ?

      ?

      點(diǎn)擊立即構(gòu)建,不一會我們就收到了郵件



      ?

      ?

      ?

      ?

      到這里我們使用git加上jenkins搭建的.Net 項(xiàng)目持續(xù)集成就完成了。那么我們接下來看對于.Net Core項(xiàng)目如何進(jìn)行持續(xù)集成的呢。因?yàn)?Net
      Core項(xiàng)目可以部署在Linux上,所以下面我們就以Linux作為服務(wù)器。在本地進(jìn)行集成然后發(fā)布到Linux
      。其他的操作都是一樣的,主要在構(gòu)建操作和構(gòu)建后操作不同。我們下面主要介紹構(gòu)建操作和構(gòu)建后操作。

      ?

      ?

      ?

      ?
      dotnet restore dotnet build dotnet publish -c:Release -r centos.7-x64
      --self-containedfalse -o
      C:\Windows\ServiceProfiles\LocalService\.jenkins\workspace\Test_Net_Core\WebApplication2\bin\Release\netcoreapp2.
      2\centos.7-x64 echo 壓縮開始 cd
      C:\Windows\ServiceProfiles\LocalService\.jenkins\workspace\Test_Net_Core\WebApplication2\bin\Release\netcoreapp2.
      2 7z a -tzip publish.zip
      C:\Windows\ServiceProfiles\LocalService\.jenkins\workspace\Test_Net_Core\WebApplication2\bin\Release\netcoreapp2.
      2\centos.7-x64 echo 壓縮結(jié)束
      ?
      dotnet restore——還原 dotnet build ——構(gòu)建 dotnet publish——發(fā)布 -c:Release ——Release 版本
      -r centos.7-x64 ——linux版本 --self-contained false ——框架依賴 -o
      D:\Jenkins_CorePublish ——發(fā)布文件到此目錄下
      ?

      ?

      后面增加了一個(gè)壓縮命令,將發(fā)布文件壓縮成一個(gè)壓縮包,這個(gè)是方便后續(xù)上傳到服務(wù)器的。SSH
      上傳僅上傳文件。不帶上傳文件夾。所以我們需要進(jìn)行壓縮。后續(xù)上傳到服務(wù)器再進(jìn)行解壓。

      然后開始配置構(gòu)建后操作,一樣的需要配置郵件信息,郵件信息與上面的配置一樣即可。這里我們主要配置如何連接SSH。

      ?

      ?

      ?

      ?

      這里需要注意的是上傳的源文件。這里基目錄是你的jenkins工作目錄,所以需要相對于填寫位置

      這里配置上傳文件及解壓等操作然后重新啟動linux服務(wù)器上的服務(wù)完成發(fā)布。
      cd /home/hlz rm -f publish unzip publish.zip rm -f publish.zip cd /root
      systemctl enable Test.service systemctl start Test.service systemctl status
      Test.service
      ?

      總結(jié)

        到這里在windows上使用jenkins
      持續(xù)集成就完成了。中間還有一些細(xì)節(jié)需要另行配置的都可以自由發(fā)揮,主要流程大概就是這么多了。這里的是通過在本地繼續(xù)集成然后通過Publish over SSH
      插件傳輸?shù)絣inux服務(wù)器進(jìn)行.Net Core項(xiàng)目的部署的。那么我們也可以直接在Linux上部署Jenkins
      ,這樣就不需要這一步連接服務(wù)器的操作了??梢灾苯釉诜?wù)器上一次性解決問題。

      ?

        逃避不一定躲得過,面對不一定難受.轉(zhuǎn)身不一定最軟弱.

      ?

      歡迎大家掃描下方二維碼,和我一起踏上設(shè)計(jì)模式的闖關(guān)之路吧!

      ?

        

      ?

      友情鏈接
      ioDraw流程圖
      API參考文檔
      OK工具箱
      云服務(wù)器優(yōu)惠
      阿里云優(yōu)惠券
      騰訊云優(yōu)惠券
      京東云優(yōu)惠券
      站點(diǎn)信息
      問題反饋
      郵箱:[email protected]
      QQ群:637538335
      關(guān)注微信

        <ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>
          天天操夜夜逼 | 日本十八禁视频 | 少妇高潮zzzzzzzy一avhd | 三级电影中文字幕 | 天天躁日日躁狠狠躁av麻豆男男 | 大香蕉超碰| 青青草成人在线播放 | 中文字幕久久无码 | 亚洲免费电影网 | 一区在线观看视频 |