jenkins在windows上自動化部署.Net(.Net Core)項目

前言

  什麼是持續集成呢?Continuous integrationCI)。持續集成是一種軟件開發實踐,即團隊開發成員常常集成他們的工做,一般每一個成員至少集成一次,也就意味着天天可能會發生屢次集成。每次集成都經過自動化的構建(包括編譯,發佈,自動化測試)來驗證,從而儘快地發現集成錯誤。許多團隊發現這個過程能夠大大減小集成的問題,讓團隊可以更快的開發內聚的軟件。html

  若是沒有持續集成會有哪一些問題呢?模塊項目接口部署不及時,接口不通。每次須要手動打包最新的代碼進行部署、發佈代碼、線上部署都是純手工。容易出錯。浪費時間。java

  如今加上持續集成解決的問題呢?項目構建自動化、集成的詳細信息及歷史記錄的記錄、使用統一的管理、固定規定的部署流程、天天至少集成一次。linux

安裝

 

  這裏我採用的是使用Tomcat配合jenkins一塊兒使用的來達成持續集成的目的。git

  1、安裝Tomcat

    從官網下載Tomcat。下載地址:http://tomcat.apache.org/web

 

 

 

 

    這裏我選擇的是32-bit/64-bit Windows Service Installer (pgpsha512)這個版本。而後依次安裝就能夠了。apache

接下來配置環境變量:windows

1、修改設置:CLASSPATH:(.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%)。注意是第一個符號點!!centos

2、新增設置:CATALINA_HOME:(D:\tool\apache-tomcat-7.0.57)括號內爲路徑名。設計模式

3、修改設置:path:(;%JAVA_HOME%;%JRE_HOME%\jre\bin)若之前配置java環境時配置過則不要再次配置。瀏覽器

     安裝就差很少完成了,咱們在瀏覽器輸入http://localhost:8080/來看看是否出現如下頁面,出現了的話就說明安裝成功了。

 

 

 

 

 

  2、安裝JDK

    安裝JDK能夠查閱這篇文章——https://www.runoob.com/java/java-environment-setup.html

  3、安裝Jenkins

  一切準備就緒以後,就開始安裝jenkins了,下載地址:https://jenkins.io/download/前往地址下載jenkins的 war包。而後將war包放置在前面安裝的Tomcat的目錄之下(C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps——個人地址是這個)。

而後在瀏覽器中輸入http://localhost:8080/jenkins/訪問,安裝成功的話就會出現jenkins的界面

 

 

 

這裏根據提示咱們找到目錄之下就能夠獲取密碼了。接下來會出現插件安裝的一個選擇,新手直接選擇新手入門推薦安裝就行了。

 

 

 

 

 

 

這裏有時會出現安裝失敗或者連接失敗的狀況,多試幾回就行了。通常是網絡的問題。

  

 

 

 

 

建立管理員用戶以後就能夠正式開始配置jenkins了。

配置

1、插件安裝

  這裏須要安裝暫且有三個插件,一個是MSBuild Plugin、一個是 Publish Over SSH、一個是Email Extension Plugin。前者是用來做爲編譯的插件,後者是用來做爲鏈接服務器的插件、最後一個則是用來配置郵件發送的插件了。

  

 

 

2、郵箱配置

  進入系統設置,正式開始配置郵件發送的配置。

 

 

 

 

  首先找到Jenkins Location設置系統管理員的郵件地址。

 

 

 

 

  而後找到Extended E-mail Notification設置,這裏就能夠開始設置郵件的發送配置了。這裏我採用的是qq郵箱的配置。 

 

 

 

 

 

 

 

 

 

SMTP server——SMTP 服務器的配置

Default user E-mail suffix——默認電子郵件的後綴

User Name——這裏設置的是發件人信息(12345678@qq.com-在這裏就輸入12345678

Password——這裏不是填寫密碼,這裏輸入的是開通SMTP 的受權碼

SMTP port——SMTP 默認端口開啓465

Default Content Type——郵件內容的格式

Default Recipients——默認收件人

Default Subject——默認主題

Default Content——默認內容

 

郵件通知內容的配置的模板:

 

<!DOCTYPE html>    

<html>    

<head>    

<meta charset="UTF-8">    

<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次構建日誌</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>    

            本郵件由系統自動發出,無需回覆!<br/>            

            各位同事,你們好,如下爲${PROJECT_NAME }項目構建信息</br>

            <td><font color="#CC0000">構建結果 - ${BUILD_STATUS}</font></td>   

        </tr>    

        <tr>    

            <td><br />    

            <b><font color="#0B610B">構建信息</font></b>    

            <hr size="2" width="100%" align="center" /></td>    

        </tr>    

        <tr>    

            <td>    

                <ul>    

                    <li>項目名稱 : ${PROJECT_NAME}</li>    

                    <li>構建編號 : 第${BUILD_NUMBER}次構建</li>    

                    <li>觸發緣由: ${CAUSE}</li>    

                    <li>構建狀態: ${BUILD_STATUS}</li>    

                    <li>構建日誌: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>    

                    <li>構建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>    

                    <li>工做目錄 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>    

                    <li>項目  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>

詳細提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>

 

            </td>    

        </tr>    

    </table>    

</body>    

</html>

 

 

3、 Publish over SSH配置

接下來咱們就開始配置SSH鏈接服務器配置了。

 

 

 

 

 

按照上面的配置進行設置就能夠了。

Passphrase——密碼或密鑰

Name——此鏈接服務的名稱

Hostname——服務器的地址

Username——服務器用戶名

Remote Directory——傳輸的遠程目錄

Use password authentication, or use a different key——此選項可另設置其餘的密碼

4、 全局工具配置

進入Global Tool Configuration設置全局工具設置,這裏首先咱們得設置git,這個不設置後面可能就拉取不到代碼了。再而後設置MSBuild這個設置就是用來給項目進行編譯的。

 

 

 

 

構建

到這裏安裝和配置都已經結束了。咱們能夠正式開始構建項目了。這裏咱們分爲對.Net .Net Core項目進行集成。配合使用則是Git進行代碼的提交及拉取。

這裏咱們選擇開始構建一個自由風格的項目。

 

 

而後進行項目描述填寫

 

 

 

 

這裏就開始設置源代碼管理了。選擇git並輸入地址。隨後點擊高級,設置用戶名和密碼,而後返回此頁面選擇剛設置的證書便可

 

 

 

 

而後開始構建觸發器,這裏我設置的觸發器的時間是每分鐘輪詢是否觸發。時間你們能夠根據狀況而定

 

 

 

 

這裏的構建環境,你們能夠視狀況而定。

 

 

 

 

到這裏就正式開始構建配置了。這裏我選擇的是使用MSBuild構建VS項目。

 

 

 

/t:Rebuild /p:Configuration=Release /p:DeployOnBuild=true;PublishProfile=FolderProfile /p:OutputPath=D:\Jenkins_Publish

 

MSBuild Build File——構建的目錄(例如個人就填寫的C:\Windows\ServiceProfiles\LocalService\.jenkins\workspace\Test_Net\WebApplication1\WebApplication1.csproj) Command Line Arguments——構建的命令 Rebuild ——從新生成 Configuration=Release——生成Release版本 DeployOnBuild=true;PublishProfile=FolderProfile——設置運行部署生成,而且執行FolderProfile目錄下的生產目錄(FolderProfile文件在Properties目錄中) OutputPath——輸出路徑

 

這裏我看開始配置構建完成以後的操做的短信配置了。

 

 

 

 

 

到這裏就已經都配置完成了,咱們能夠返回主頁面開始構建了。

 

 

 

 

點擊當即構建,不一會咱們就收到了郵件

 

 

 

 

到這裏咱們使用git加上jenkins搭建的.Net 項目持續集成就完成了。那麼咱們接下來看對於.Net Core項目如何進行持續集成的呢。由於.Net Core 項目能夠部署在Linux上,因此下面咱們就以Linux做爲服務器。在本地進行集成而後發佈到Linux。其餘的操做都是同樣的,主要在構建操做和構建後操做不一樣。咱們下面主要介紹構建操做和構建後操做。

 

 

 

 

dotnet restore dotnet build dotnet publish -c:Release -r centos.7-x64 --self-contained false   -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 壓縮結束

 

dotnet restore——還原

dotnet build ——構建

dotnet publish——發佈

-c:Release ——Release 版本

-r centos.7-x64 ——linux版本

--self-contained false ——框架依賴

-o D:\Jenkins_CorePublish ——發佈文件到此目錄下

 

 

後面增長了一個壓縮命令,將發佈文件壓縮成一個壓縮包,這個是方便後續上傳到服務器的。SSH上傳僅上傳文件。不帶上傳文件夾。因此咱們須要進行壓縮。後續上傳到服務器再進行解壓。

而後開始配置構建後操做,同樣的須要配置郵件信息,郵件信息與上面的配置同樣便可。這裏咱們主要配置如何鏈接SSH

 

 

 

 

這裏須要注意的是上傳的源文件。這裏基目錄是你的jenkins工做目錄,因此須要相對於填寫位置

這裏配置上傳文件及解壓等操做而後從新啓動linux服務器上的服務完成發佈。

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

 

總結

  到這裏在windows上使用jenkins持續集成就完成了。中間還有一些細節須要另行配置的均可以自由發揮,主要流程大概就是這麼多了。這裏的是經過在本地繼續集成而後經過Publish over SSH插件傳輸到linux服務器進行.Net Core項目的部署的。那麼咱們也能夠直接在Linux上部署Jenkins,這樣就不須要這一步鏈接服務器的操做了。能夠直接在服務器上一次性解決問題。

 


  逃避不必定躲得過,面對不必定難受.轉身不必定最軟弱.

 

歡迎你們掃描下方二維碼,和我一塊兒踏上設計模式的闖關之路吧!

 

  

相關文章
相關標籤/搜索