使用VSTS爲ASP.NET Core構建DevOps CI/CD管道

目錄

介紹

讓我們深入瞭解基本概念

單體架構和微服務架構

敏捷和DevOps

DevOps背後的推動力

持續集成

持續交付

持續部署

使用VSTS的ASP.NET Core應用程序的自動化CI

先決條件

使用VSTS創建團隊項目

爲ASP.NET Core應用程序創建新的構建定義

創建新發布定義


介紹

基於Web的應用程序使我們的工作更加輕鬆。特別是當我們需要屏幕之間的交互時,我們可以考慮使用單頁應用程序(SPA)。對於SPA,我們可能需要Web-packgruntgulp等用於合併和捆綁我們的客戶端腳本。單擊此處獲取基本信息。假設我們使用ASP.NET Core,則可能需要使用npmboweryarn等來管理軟件包,以便我們可以還原軟件包並編譯應用程序。但是,如果您沒有自動CI/CD。那麼第一次部署單個頁面的應用程序也很困難。在本文中,我的主要重點是向您展示如何使用VSTSASP.NET Core應用程序創建構建和發佈。

讓我們深入瞭解基本概念

單體架構和微服務架構

曾經有一段時間,單體架構是一種普遍的做法,瀑布模型很受歡迎。在這種方法論中,一切都被視爲一個大項目,即結構化和順序化的過程。現在,它被分解成小塊,並且是迭代的。是的,我的意思是微服務架構和敏捷方法論。

敏捷和DevOps

我們知道敏捷是一種開發方法。DevOps這個詞就是Agile的擴展,它主要側重於開發過程到生產支持。可以說,這是軟件開發與運營的結合。

DevOps背後的推動力

在談論DevOps時,經常會提到以下術語:

  • 持續集成(CI
  • 連續交付(CD
  • 持續部署(CD

持續集成

一天中,開發人員會多次簽入/提交併將代碼合併到共享存儲庫(GitTeam Foundation版本控制等)中,並且在合併這些代碼後,它會自動構建並運行自動化測試。

持續交付

在代碼集成之後,將構建並測試代碼。現在可以將代碼推送到暫存環境(非產品測試)或生產中,但是您需要手動批准才能推送代碼。

持續部署

在代碼集成之後,將構建並測試代碼。現在,未經任何批准,它會自動推送到暫存環境(非產品測試)或生產中。

使用VSTSASP.NET Core應用程序的自動化CI

先決條件

您需要Visual Studio Team Services帳戶Git帳戶。沒有一個?您可以從https://www.visualstudio.comhttps://github.com創建一個新的免費帳戶。

使用VSTS創建團隊項目

1、選擇項目>新項目

2、爲項目提供一個名稱,然後爲您的項目選擇正確的版本控制GitTFVC。選擇一個工作項目流程。單擊創建按鈕創建項目。

3、單擊Clone in Visual Studio

4、VS IDE將彈出一個窗口。單擊克隆按鈕。

5、選擇Team Explorer,然後單擊Create a new project or solution

創建項目後,您需要提交所有更改。單擊團隊資源管理器>更改。填寫更改評論,然後單擊全部提交

6、單擊同步以同步代碼。

7、最後,單擊發佈Outgoing Commits>Publish)。

ASP.NET Core應用程序創建新的構建定義

1、選擇BuildRelease選項卡,然後選擇Builds

2、選擇新建以創建新定義。

3、選擇項目,存儲庫,分支,然後單擊繼續

4、根據您的項目類型選擇build模板。我選擇ASP.NET Core.NET Framework),然後單擊Apply”按鈕以生成內部定義。

5、選擇Process任務,並填寫構建定義的名稱(例如HelloWorld-Dev,我們將在發行版中使用此名稱)。選擇Hosted VS2017作爲要在其中運行構建的默認代理。

如果您的團隊使用Visual Studio 2017,則選擇Hosted VS2017,然後它具有.NET Core框架並需要其他組件來構建項目。如果您的團隊在Ubuntu上使用開發工具,請選擇Hosted Linux。如果您的團隊使用Visual Studio 2013Visual Studio 2015,請選擇託管

選擇項目解決方案文件作爲solutionpackages.config的路徑,並填寫工件名稱

6、選擇獲取源任務並檢查正確的項目,存儲庫和分支。選擇clean: true“ clean options: sources。標籤來源:Never。報告:build status

7、選擇生成解決方案從第一階段任務1.選擇的Visual Studio版本:最新的。MSBuild體系結構:選擇適合您的X64X86

Webpack的應用程序構建和捆綁

8、我們需要添加npm安裝用於項目的所有軟件包。要添加npm task,請單擊第1階段右側的(+Add Task,然後選擇Package。查找並添加npm任務。現在將npm任務拖放到Build solution之前。如果您使用Bower而不是npm,則需要添加Bower

現在選擇npm任務並選擇Commandinstall。現在對於帶有package.json的工作文件夾,選擇具有package.json文件的主項目的根文件夾。選擇自定義註冊和身份驗證註冊>要使用的註冊:在我的.npmrc 中註冊;高級>詳細日誌記錄:已選中;控制選項>啓用:選中。

9、接下來,我們將需要PowerShell腳本任務來編譯我們的客戶端腳本。在這裏,我們將安裝webpack並使用web-pack編譯JavaScript。選擇(+)添加任務,然後從構建部分中查找PowerShell。將其添加到npm install構建解決方案任務之間的構建定義中。

填寫以下信息:

  • 顯示名稱:PowerShellScript
  • 類型:內聯腳本
  • 內聯腳本:
(Get-Item -Path ".\" -Verbose).FullName
$env:Path=[System.Environment]::GetEnvironmentVariable("Path","Machine")+";"+
[System.Environment]::GetEnvironmentVariable("Path","User")
Get-Command -CommandType Application -ErrorAction SilentlyContinue 
-Name webpack | Select-Object -ExpandProperty Definition | echo
npm install -g webpack --no-optional
node_modules\.bin\webpack -p
  • 高級>工作文件夾:您擁有webpack.config.js文件的Web應用程序的根文件夾。
  • 標準錯誤失敗:已選中
  • 控制選項:選中啓用&繼續出錯
  • 運行此任務:僅當所有先前任務都成功時。

10、選擇觸發器選項卡,然後選擇以下信息。

  • 實現持續集成
  • 在構建過程中批量更改
  • 分支過濾器>類型:包括&分支規範:即devqamaster

11、選擇選項選項卡,然後選擇以下信息。

  • 新的構建請求處理:已啓用。
  • 自動鏈接此版本中的新作品:已啓用。
  • 僅鏈接到添加到規範分支的工作鏈接>類型:包括;分支規範:即dev
  • 您還可以更改構建作業的默認值。

12、最後,單擊 Save & queue>Save以保存構建定義。

現在,如果您將代碼更改提交到選定的分支中,那麼我們將實現CI自動構建,那麼您將看到以下輸出……

創建新發布定義

1、轉到構建和發佈選項卡>“發佈 >“新定義

注意:如果您已經擁有現有發佈,則選擇加號(+)和創建發佈定義

2、選擇一個模板:IIS網站和SQL數據庫部署

3、您將獲得一個環境窗口。現在,從屬性中更改環境名稱

4、在工件面板中,選擇+ Add然後選擇項目,源(構建定義),默認版本和源別名的名稱。點擊添加按鈕。

5、單擊閃電觸發連續部署,然後在右側啓用它。如果希望在新發布的源工件可用時創建新版本,則需要它。單擊添加按鈕,然後選擇類型和構建分支。

6、單擊環境的閃電,然後:

  • 選擇觸發器:發佈後
  • 工件過濾器:已啓用
  • 選擇+添加>工件名稱(即HelloWorld-Artifact-Dev
  • 類型:包含;構建分支:即Dev; 構建標籤:留空。

7、在瀏覽器的左側,從環境面板中選擇任務或選擇任務(2個階段,2個任務)。這些任務將執行您的部署過程。

8、現在,選擇任務”>“任務環境(例如HelloWorld-Dev-Env),並填寫以下信息:

  • 配置類型:IIS網站
  • 行動:創建或更新
  • 網站名稱: HelloWorldApp-Dev
  • 應用程序池>名稱: HelloWorldApp-Dev
  • 單擊添加綁定>…按鈕。添加綁定窗口將彈出並填充以下信息:
  • 協議:httphttps,端口:IIS分配的端口(即543)和HostName:即,helloWorldApp-dev.yourDomain.com

9、單擊左側的IIS部署,然後選擇部署組。

10、選擇IIS Web App管理並填寫信息:

  • 物理路徑:%SystemDrive%\inetpub\wwwroot\Dev\HelloWorldApp-Dev\
  • 物理路徑身份驗證:應用程序用戶(直通)
  • .NET版本:v4.0
  • 託管管道模式:集成
  • 身份:選擇您喜歡的身份

11、選擇IIS Web App部署然後選中使應用程序脫機

12、我沒有使用SQL部署任務。因此,如果不需要,您可以禁用或刪除該任務。選擇“SQL部署,然後右鍵單擊它以禁用所選任務刪除所選任務

13、最後,單擊保存按鈕以保存版本定義。

注意:不要忘記設置IIS配置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章