跳到主要內容

發表文章

目前顯示的是 5月, 2020的文章

[DevOps] 實作軟體CI/CD運行架構 - ASP.NET Core test unit 單元測試

ASP.NET Core的單元測試(Test Unit)建置方式參考: MSTest : https://ithelp.ithome.com.tw/articles/10209386 建置出的UnitTest.cs class中可以建立多個[TestMethod],若以ASP.NET Core的project來看,就是在UnitTest.cs中針對要測試的controller進行測試,new一個欲測試的controller instance,叫用要測試的controller function,傳入測試的參數即可。 Controller function回應的result可用原有的 Assert 判斷是否符合預期結果,或是第三方的 FluentAssertions 。 FluentAssertions : https://marcus116.blogspot.com/2019/04/unittest-fluent-assertions.html 執行測試 : [測試] -> [執行] -> [所有測試] 將資訊存入log file 透過Nuget安裝NLog.Config和NLog.Web.AspNetCore: 安裝後可看到project多了一個NLog.config檔案: 打開NLog.config,依序在Targets及Rules區塊新增以下設定 Targets <target name="logfile" xsi:type="File" fileName="C:\temp\log\${shortdate}\debug.log"         layout="${date}| ${level} | ${message}"/> <target name

[DevOps] 實作軟體CI/CD運行架構 - CI part

DevOps觀念中一項很重要的環節就是要有自動化的CI/CD流程,而最常被用來實作CI/CD的tool就是Jenkins,以下說明如何一步步透過Jenkins建立CI/CD流程。 我們將實作分成CI和CD兩個階段,在CI的部分中我們先實作目標為"當有新的source code就觸發自動build code,並紀錄回傳結果"。 實作步驟如下: 1. 將source code上傳至Github 2. 安裝Jenkins 3. 新增工作,設定Jenkins (Github, Nuget, MSBuild) 4. Message inform 5. 設定"當有新的source code就觸發自動build code" 1. 將source code上傳至Github     先申請一個Github帳號,開一個新的project,上傳你的source code (此處以ASP.NET Core MVC開發) 2. 安裝Jenkins     請參考連結:      https://dotblogs.com.tw/stanley14/2018/05/27/Jenkins_install     Jenkins的套件很容易安裝失敗,有時要重安裝幾次才會成功,也可以之後要用到再安裝。所以如果真的安裝不上去就先跳過安裝即可。 3. 新增工作,設定Jenkins (Github, Nuget, MSBuild)     請參考連結:       a. 設定Nuget, MSBuild      https://ithelp.ithome.com.tw/articles/10211030     - 安裝Visual Studio 2017 Enterprise (DevOps)     - MSBuild的設定如下:(設定MSBuild15即可) 路徑:C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe     - Nuget的執行檔下載後放至"C:\nuget\"下,並加入至環境變數中。 設定完成後請瀏覽器執行URL:"

[DevOps] 實作軟體CI/CD運行架構 - CD part

接續上一篇CI,CD為Continue Deploy/Deliver,我們以ASP.NET project為例,分兩種: 1. 僅Copy檔案到指定位置 2. IIS部屬 1. 僅Copy檔案到指定位置 參考連結: https://dotblogs.azurewebsites.net/stanley14/2018/06/19/Jenkins_CopyArtifact_plugin 與連結不同的是: - 在"管理Jenkins -> 組態設定"中,請先設定好Jenkins主機的IP(不要用"localhost"): - "(2)Jenkins Master設定" 到Agents區塊,選固定,按下Agent protocols如下圖: 選擇一個port當作與Slave節點溝通的port。 - 接著在 "(3)Master新增Slave節點" 新增節點中的設定裡,要將port設定上去 ( Port前面要加":" ): -在 "(6)封存成品" 設定完成後, 在"建置"中加入如下: - 在"(7)Slave 複製成品並進行佈署(pipeline)"中,pipeline script要先安裝Jenkins plugin "Pipeline: Groovy",安裝成功後重新登入。 Sample code for pipeline script: node('CD_server') { stage('Stage 取得Build版本'){ script { step ([$class: 'CopyArtifact', projectName: 'CiCdTest', target: 'Infra']); } } /*stage('Stage 停止服務'){