使用Azure Pipelines來實現Teams App的CI

我在之前的文章里介紹了如何一步步配置CI/CD來部署Teams App(?之前的文章?),隨著Azure DevOps的發展,微軟推出了Azure Pipelines。在這篇文章中,主要介紹什么是Azure Pipelines,以及如何使用Azure Pipelines來進行Teams App的構建、測試和部署工作負載

什么是Azure Pipelines

微軟發布了Azure Pipelines,他們新的 CI/CD 服務,是 Azure DevOps 產品的一部分。Azure Pipelines 可用于構建、測試和部署工作負載,并可以讓各種語言、項目類型和平臺協同工作。

作為 Visual Studio Team Services(VSTS)的后續產品,Azure DevOps 由幾個組件組成,Azure Boards、Azure Repos、Azure Test Plans、Azure Artifacts和 Azure Pipelines。Azure DevOps 提供了端到端服務,用于共享代碼、跟蹤工作并提供類似于其他服務(如Atlassian Stack)的解決方案。 這些組件都是 Azure DevOps 鏈中的一個鏈接,Azure Pipelines 實現了 CI/CD 管道的角色。 此外,Azure Pipelines 具有以前在 VSTS 中可用的所有功能,并補充了一些新功能:

  • Azure Pipelines 是一項獨立服務,可以獨立于其他 Azure DevOps 組件使用。
  • 可以直接通過 GitHub Marketplace 獲取和配置新的管道。
  • 更好地與 GitHub 集成,包括拉取請求的構建和跟蹤代碼提交及其相關問題。
  • 通過容器作業來支持原生容器。
  • 開源項目可以免費使用 Azure Pipelines。
  • 相比 VSTS,Azure Pipelines 提供了更加靈活的免費使用限制。

如何利用Azure Pipelines來構建Build

之前的文章中,提到如何利用Azure DevOps來Build、Deploy應用到Azure上,實現CI/CD的整個部署過程,簡單回顧下配置的步驟:

1、在Azure DevOps中新建Repo, 本地Clone,Push代碼
2、在Azure DevOps中并編譯生成一個 .NET Core應用, 配置持續集成環境
3、將Azure添加到Azure DevOps的Service Endpoint(僅限中國區的Azure)
4、在Azure中創建App Service
5、配置Azure DevOps中構建的應用Release到Azure App Service

下面,一步步的演示,如何使用Azure Pipelines構建一個新的Build,其中一個文件azure-pipelines.yml,是整個Azure Pipelines服務的關鍵, 我們將逐個分析整個yml配置的含義

一、配置build pipelines

1、進入到Azure Devops, 看到整個的功能模塊導航,和之前已經有很大的變化,這里我們略過新建Repos,Check in代碼的過程, 找到 “Pipelines”,點擊 “Build”,新建New build pipelinespipelines_step1

2、這里“Location” 選擇 “Azure Repos”?pipelines_step2

3、選擇項目代碼的Repos?pipelines_step3

4、Build的配置模板,選擇“ASP.NET Core”,?pipelines_step4

5、配置完成,開始整個Build的過程?pipelines_step5

到此整個自動化Build的過程就已經配置好了,和之前最大的一個不同是,回到Code Repos, 看到在我們的項目代碼中,自動生成了一個名為azure-pipelines.yml文件
azure-pipelines_yml

打開這個yml文件,看下里面的配置參數

pool:vmImage: 'vs2017-win2016'variables:buildConfiguration: 'Release'steps:
- script: dotnet build --configuration $(buildConfiguration)displayName: 'dotnet build $(buildConfiguration)'- task: DotNetCoreCLI@2inputs:command: publishpublishWebProjects: Falseprojects: 'MicrosoftTeams.OutgoingWebhook.csproj'arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'zipAfterPublish: True

二、Azure Pipelines中yml文件釋義

1、首先,pool vmImage參數

pool:vmImage: 'vs2017-win2016'

這里的pool vmImage參數表示:Build Environment, 其中的可選項有 ‘ubuntu-16.04’、’macOS-10.13’、’vs2017-win2016’,在Microsoft-hosted agents中有不同 的系統環境及其版本供選擇

2、variables

  variables:buildConfiguration: 'Release'

這里的buildConfiguration參數表示: Build的版本是Release版本

3、steps

steps:
- script: dotnet build --configuration $(buildConfiguration)displayName: 'dotnet build $(buildConfiguration)'

這里的script: dotnet build表示:執行build的工作腳本,命令,并且進行build的輸出配置,或者使用.NET Core task的模式進行配置,如下:

steps:
- task: DotNetCoreCLI@2inputs:command: restoreprojects: '**/*.csproj'feedsToUse: confignugetConfigPath: NuGet.config    # Relative to root of the repositoryexternalFeedCredentials: <Name of the NuGet service connection>

在restore之前,如果我們想要在Microsoft-hosted agent指定 .Net Core SDK的版本進行Build,可以在yml配置中加入如下配置
```yml
- task: DotNetCoreInstaller@0inputs:version: '2.1.300' # replace this value with the version that you need for your project

4、task

- task: DotNetCoreCLI@2inputs:command: publishpublishWebProjects: Falseprojects: 'MicrosoftTeams.OutgoingWebhook.csproj'arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'zipAfterPublish: True

其中task表示:使用.NET Core task的進行模式執行任務構建,?command則別是構建的執行的命令,比如常用的build、test、publish等

三、總結

從上面的yaml的腳本配置,結合微軟的官方文檔, 如下截圖:
yaml_model

designer_model

我們可以這樣去理解,相當于以前從可視化的界面進行CI的配置(截圖中的Designer模式),現在在Azure Pipelines中使用yaml文件進行配置(截圖中的YAML模式),這進一步方便了對CI過程的配置,當我們需要改變 我們的CI行為,比如增減組建,步驟等,直接修改配置文件,當push代碼,merge到分支后,則整個構建流程會按照新的配置文件進行構建,這無疑提供了更大的靈活性。

參考文檔

  • 1、Build, test, and deploy .NET Core apps in Azure Pipelines
  • 2、Build .NET Core projects with Azure Pipelines or Team Foundation Server
  • 3、Free Azure Build Pipelines for Open Source Projects
  • 4、微軟發布 Azure Pipelines,開源項目可無限制使用 CI/CD

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/278067.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/278067.shtml
英文地址,請注明出處:http://en.pswp.cn/news/278067.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

004-React入門概述

一、概述 參考地址&#xff1a;https://reactjs.org/docs/try-react.html 1.1、本地快速體驗 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>Hello World</title><script src"https://unpkg.com/react16/…

Python --- 卸載

python的卸載 1、? rpm -qa|grep python3.6|xargs rpm -ev --allmatches --nodeps ##強制刪除已安裝程序及其關聯 2、? whereis python3.6 |xargs rm -frv 允許你對輸出執行其他某些命令 3、? whereis python ##驗證刪除&#xff0c;返回無結果轉載于:https://www.…

開發Teams Tabs應用程序

什么是Teams Tabs Tabs是微軟Teams的一種十分有用的擴展方式。可以非常方便的和現有的網站或者網頁應用進行整合。具體的說明不在這里展開了。可以閱讀微軟官方的詳細說明&#xff1a; https://docs.microsoft.com/en-gb/microsoftteams/platform/concepts/tabs/tabs-overvie…

(轉)關于SimpleDateFormat安全的時間格式化線程安全問題

想必大家對SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一個非常常用的類&#xff0c;該類用來對日期字符串進行解析和格式化輸出&#xff0c;但如果使用不小心會導致非常微妙和難以調試的問題&#xff0c;因為 DateFormat 和 SimpleDateFormat 類不都是線程安全的&…

IDEA開發工具的學習

1.設置jdk的版本 &#xff0c;快捷鍵&#xff1a;ctrl shirt alt s 打開項目的設置&#xff0c;選擇Project 進行 jdk版本的設置。 2.鼠標移到項目上&#xff0c;右鍵&#xff0c;Show in Explorer 定位到當前項目對應的文件夾中 3.每次關閉項目時&#xff0c;需要手動選擇Fi…

順利達成微軟HacktoberFest 2018

昨天收到郵件&#xff0c;我的HacktoberFest 2018獎品終于從美國寄出來了&#xff0c;不知道飄洋過海多久可以寄到。 今年的HacktoberFest 2018除了微軟官方博客的宣傳&#xff0c;連Channel 9的美女主播也在TWC上大肆宣傳。 活動內容是在整個10月份需要給微軟的開源代碼貢獻5…

【轉載】Swift屬性Property

本文系轉載 原文鏈接 Swift的屬性與Objective-C中的屬性是一樣的&#xff0c;不同的是Swift細化了屬性的類型&#xff0c;另外除了類之外&#xff0c;結構體和枚舉也可以有屬性。 Swift中有這么幾種屬性&#xff1a; 存儲屬性(Stored properties)&#xff1a;存儲實例的常量和變…

leetcode13

題目&#xff1a; 阿拉伯數字轉化為羅馬數字 解題思路&#xff1a; 設置兩個vector&#xff0c;一個放羅馬數字&#xff0c;一個放羅馬數字所對應的阿拉伯數字&#xff1b; 從給定數字num的最高位開始&#xff0c;逐位轉化&#xff1b;n-2; 如果該位數字是1-3&#xff0c;則在結…

更新!在線狀態和用戶的共存模式保持一致

根據用戶反饋&#xff0c;我們正在改進&#xff1a;當組織同時使用Microsoft Teams和Skype for Business時的用戶在線狀態。通過此更新&#xff0c;路由和在線狀態將完全保持一致。為確保路由能跟隨用戶的在線狀態&#xff0c;所以在線狀態的更新現在會基于用戶的共存模式。 如…

centos上安裝supervisor來管理dotnetcore等應用程序

supervisor 介紹&#xff1a;這是一款用python編寫的進程管理工具&#xff0c;可以守護他管理的所有進程&#xff0c;防止異常退出&#xff0c;以及提供一個可視化的web界面來手動管理&#xff0c;打開關閉重啟各種應用&#xff0c;界面如下&#xff1a;關于在centos上安裝supe…

MyBatis Generator 生成器把其他數據庫的同名表生成下來的問題

MyBatis Generator 生成器把其他數據庫的同名表生成下來的問題2018年10月23日 20:47:48 莫彈彈 閱讀數&#xff1a;603MyBatis Generator : Table Configuration scheme.table matched more than one table在使用生成器生成代碼的時候遇到了這個錯誤, 現象就是某個類中出來了數…

新增功能!Trello個人應用程序登陸 Microsoft Teams

從初創企業到《財富》500強公司, Trello是團隊在任何項目上進行合作的視覺方式。在Microsoft Teams中, 我們發現圍繞項目進行大量對話和協作的方式。因此, 一個首屈一指的項目管理工具應該與團隊協作的終極樞紐進行合作, 以便讓員工更好地一起工作。 如你所知, 我們已經為Micr…

Linux bc 命令簡單學習

1. bash里面能夠實現比較簡單的四則運算 echo $((10*20)) 注意是 雙括號 $ 地址符號. 2. 但是比較復雜的 可能就難以為繼了 比如不支持精度 3. 所以這里面需要使用 bc 命令來執行相關的操作. man 內容: usage: bc [options] [file ...] -h --help print this usage and exit…

深入理解AbstractQueuedSynchronizer(AQS)

1. AQS簡介 在上一篇文章中我們對lock和AbstractQueuedSynchronizer(AQS)有了初步的認識。在同步組件的實現中&#xff0c;AQS是核心部分&#xff0c;同步組件的實現者通過使用AQS提供的模板方法實現同步組件語義&#xff0c;AQS則實現了對同步狀態的管理&#xff0c;以及對阻塞…

終于收到HacktoberFest的獎品啦

去年10月份給微軟repo提交了5個PR&#xff0c;達成了HacktoberFest 2018&#xff0c;今天終于收到了從美國到澳洲&#xff0c;飄洋過海&#xff0c;姍姍來遲的T-shirt&#xff0c;不過大小正好。算是新年禮物了&#xff0c;哈哈

三、SpringBoot-application.properties配置文件和application.yml配置文件

其實SpringBoot的配置文件有.properties和.yml兩種形式&#xff0c;兩種配置文件的效果類似&#xff0c;只不過是格式不同而已&#xff0c;孩兒們可以根據下面這幾種張截圖&#xff0c;通過對比端口號的配置&#xff0c;以及連接SQLServer數據庫的配置的書寫格式來自己體會兩者…

Teams中的快捷鍵讓溝通協作更加高效

使用Teams的快捷鍵可以幫助我們提高日常溝通協作的效率。 一、快捷鍵分類 1.常規2.導航3.聊天輸入界面4.團隊和會議 1.常規 功能桌面版本快捷鍵WebApp版本快捷鍵搜索CtrlECtrlE顯示命令CtrlSlash (/)CtrlSlash (/)gotoCtrlGCtrlShiftG開始新聊天CtrlNAltN打開設置CtrlComma …

線程間的協作(2)——生產者與消費者模式

2019獨角獸企業重金招聘Python工程師標準>>> 1.何為生產者與消費者 在線程世界里&#xff0c;生產者就是生產數據的線程&#xff0c;消費者就是消費數據的線程。 import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; import java.…

一位面試者提到直接調用vuex中mutations方法

簡述是用this.$store.mutations.xxx(xx)方式調用&#xff0c;因從未見過此種調用方式&#xff0c;回來就搜索了一下&#xff0c;查詢結果如下 首先前文&#xff1a; 獲取 state 的方式有兩種&#xff0c;分別是 this.$store.state.num 這種直接獲取的方式&#xff0c;以及通過 …

從無到有到完善 - Teams抽獎機器人開發歷程

我沒有寫博客有2&#xff0c;3個月了&#xff0c;好幾個朋友來問我怎么不繼續了。實際上這幾個月我受到微軟好友的鼓舞和鼓勵&#xff0c;再加上今年2月1日有幸成為了微軟中國區第一位Teams的MVP&#xff0c;所以決定不再停留于技術demo&#xff0c;而是使用微軟最新的技術開發…