Azure DevOps(一)基於 Net6.0 的 WPF 程式如何進行持續整合、持續編譯

Grant_Allen發表於2023-04-19

一,引言

  我們是否正在為如何快速的編譯、部署客戶端應用程式而煩惱?這也是博主最近遇到的問題。目前博主所在公司主要做專案級的定製化開發,多以 C/S 架構的 WPF 程式為主,每次到了協助開發團隊給實施團隊編譯好的要測試程式包時,就會出現多人協助,編譯、打包好的二進位制程式包 pull 最新程式碼 ,以及實施同事無法及時的獲取到有新程式釋出的通知等問題。有了這樣的背景,博主所在團隊開始準備開始瞭解,使用團隊協作系統 ----- Azure DevOps,透過自動化軟體交付來為使用者提供持續價值。

二,正文

1, Azure DevOps 建立專案

Project name:”NetCore_WPF_Sample“

Visibility:”Private“(根據實際專案需求)

Version control:”Git“

Work item process:”Agile“

點選 ”Create“ 建立新的專案

2,配置 Azure DevOps 流水線

選擇 ”Pipelines =》“pepelines“,點選 ”Create Pipeline“ 建立持續整合管道

選擇 ”GitHUb“ Yaml

選擇好需要專案,開始配置 ”azure-pipelines.yml“

# .NET Desktop
# Build and run tests for .NET Desktop or Windows classic desktop solutions.
# Add steps that publish symbols, save build artifacts, and more:
# https://docs.microsoft.com/azure/devops/pipelines/apps/windows/dot-net

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
    clean: true

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: PublishSymbols@2
  displayName: 'Publish symbols path'
  inputs:
    SearchPattern: '**\bin\**\*.pdb'
    PublishSymbols: false
  continueOnError: true

- task: CopyFiles@2
  displayName: 'Copy Files to: $(build.artifactstagingdirectory)'
  inputs:
    SourceFolder: 'Standard.Tool.Platform'
    Contents: '**\bin\$(BuildConfiguration)\**'
    TargetFolder: '$(build.artifactstagingdirectory)'
  condition: succeededOrFailed()

調整完 yml 檔案後,點選 ”Run“ 執行 pipeline 

點選 ”Run“ 開始執行

此時我們的 pipeline 任務正在執行,我們可以點選 ”Job“ 檢視詳細作業

 作業完成後,我們就可以看到編譯好的程式包

 點選 ”Download artifacts“ 直接下載編譯好的二進位制程式包

Bingo!!!?✌️?✌️?✌️?✌️

此演示步驟實現了 NET 的桌面應用程式的持續整合與持續編譯,當我們 pipeline 監測到 master 分支有變動後,就會立即執行管道作業,可以確保我們不必再人工拉取程式碼,編譯,釋出二進位制程式包了。

三,結尾

   透過 Azure DevOps 的 Pipeline 實現的開發團隊協助是一個不錯的選擇。今天的內容也主要是實戰操作,大家也多多練習。熟能生巧。本文所分享的內容也存在著很多我自己的一些理解,有理解不到位的,還希望多多包涵,並且指出不足之處。

作者:Allen 

版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。

相關文章