簡體   English   中英

如何為測試和發布環境構建 Azure Devops Pipelines?

[英]How to structure Azure Devops Pipelines for test & Release environments?

我是 Azure DevOps 的新手,我希望為我的項目創建正確的管道/發布結構。 我正在努力了解如何構建我的代碼,並為我的構建配置傳遞正確的值。

我已經創建了我的倉庫和分支:

main(已發布/待發布代碼的主分支)

feature/add_new_customer(每個工作的功能分支)

uat(合並多個功能提交的分支,專門用於發布前的測試)

我創建了一個構建管道,這為我創建了一個“azure-pipelines.yaml”文件,用於構建和發布構建文件。 這是從我的分支觸發的:

trigger:
- main
- feature/*
- uat

到目前為止一切都很好。 但這是通過在 yaml 中靜態/硬編碼指定構建配置

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

我現在已經向我的管道 BuildConfig 添加了一個變量,並將其設置為“UAT”,這樣我就可以在我的 yaml 中引用,如下所示:

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  **buildConfiguration: '$(BuildConfig)'**

這讓我可以“動態地”設置構建配置,但是如果我創建另一個管道,比如說從主分支構建我的發布版本,這會創建一個 azure-pipelines-1.yaml 這一定是錯誤的,因為我必須這樣做復制這些文件只是為了更改觸發器分支?

是否有一種“正確”的方法可以根據我要簽入的分支為不同的環境創建構建? 我看過環境,但他們似乎只是為我提供了 VM 或 Kubernetes? 我只是想構建一個 .net 框架遺留 web 表單應用程序,所以不需要任何花哨的東西。

我還沒有開始部署過程:!! :D

當然,您可以擁有一個基於發布管道本身內的變量來更改其行為的管道。 您將希望在運行構建時執行此操作,而不是在根變量級別。

有兩種方法可以做到這一點:

  • 條件:構建任務中的參數
  • YAML If 選擇性地設置變量的語句。

兩者都適用於您的場景,我相信在您的情況下最好使用 if 語句。 這是一個簡單示例中的樣子:

name: Stackoverflow-Example-Variables
trigger:
    - main
    - feature/*
    - uat
stages:
    - stage: your_build_stage
      variables:
        - name: solution
          value: '**/*.sln'
        - name: buildPlatform
          value: 'Any CPU'
        - name: buildConfiguration
          ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}:
            value: 'Release'
          ${{ if ne(variables['Build.SourceBranch'], 'refs/heads/main') }}:
            value: 'UAT'
      displayName: "Build Solution"
      jobs:
        - job: output_message_job
          displayName: "Output Message Job"
          pool:
            vmImage: "ubuntu-latest"
          steps:
            - powershell: |
                Write-Host ${{ variables.buildConfiguration }}
                Write-Host $(Build.SourceBranch)
                

            

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM