Azure DevOps 构建与发布过程解析

65次阅读
没有评论

问题描述

在使用Azure DevOps进行构建和发布过程时,希望了解在这些过程背后到底发生了什么。用户已经成功创建了一个构建流水线,并成功发布了一个Azure App Service,但是对于这些过程的具体细节感到困惑。

解决方案

构建流水线配置

用户的构建流水线的配置如下所示:

trigger:
- master
pool:
  vmImage: 'Ubuntu-16.04'
variables:
  buildConfiguration: 'Release'
steps:
- script: dotnet restore
  displayName: Restoring Dependencies
- script: dotnet build --configuration $(buildConfiguration)
  displayName: 'dotnet build $(buildConfiguration)'
- task: DotNetCoreCLI@2
  displayName: Unit Tests
  inputs:
    command: test
    projects: '**/*Tests/*.csproj'
    arguments: '--configuration $(buildConfiguration)'
- task: DotNetCoreCLI@2
  displayName: Publishing
  inputs:
    command: publish
    publishWebProjects: True
    arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
    zipAfterPublish: True
- task: PublishBuildArtifacts@1

发布流水线配置

用户的发布流水线配置如下所示:

steps:
- task: AzureRmWebAppDeployment@4
  displayName: 'Deploy Azure App Service'
  inputs:
    azureSubscription: '$(Parameters.ConnectedServiceName)'
    appType: '$(Parameters.WebAppKind)'
    WebAppName: '$(Parameters.WebAppName)'

构建流程解析

用户的构建流水线在执行过程中,会依次执行以下步骤:

  1. 恢复依赖项 (dotnet restore):该步骤会恢复项目的依赖项,以确保构建过程所需的包和库得以加载。

  2. 构建 (dotnet build): 该步骤会执行项目的构建,生成编译后的二进制文件。在这个特定的流水线配置中,使用了dotnet build命令,并根据指定的配置($(buildConfiguration))进行构建。

  3. 单元测试 (DotNetCoreCLI@2): 该步骤使用DotNetCoreCLI任务来执行单元测试。它通过test命令运行项目中的单元测试,并指定了测试项目的路径和配置。

  4. 发布 (DotNetCoreCLI@2): 这一步骤执行项目的发布操作。使用publish命令将应用程序发布到指定的输出目录($(Build.ArtifactStagingDirectory))。publishWebProjects: True表示发布Web项目,zipAfterPublish: True表示在发布后将其打包为zip文件,以便后续使用。

  5. 构建发布文件 (PublishBuildArtifacts@1): 最后一步是使用PublishBuildArtifacts任务将构建生成的发布文件(在前一步中生成的文件)发布到Azure DevOps的构建工件存储区(Artifacts)中,以便在后续的流程中使用。

发布流程解析

用户的发布流水线负责将构建生成的文件部署到Azure App Service。具体步骤如下:

  1. 部署 Azure App Service (AzureRmWebAppDeployment@4): 这一步使用AzureRmWebAppDeployment任务来将构建生成的文件部署到Azure App Service。用户需要提供Azure订阅信息(azureSubscription)以及Web应用程序的类型(appType)和名称(WebAppName)。此任务会将构建生成的文件部署到指定的Azure App Service。

工作原理

在构建流程中,用户的代码会被编译、测试和发布到指定目录。构建生成的发布文件会被推送到Azure DevOps的构建工件存储区。在发布流程中,构建生成的发布文件会被部署到Azure App Service,以便将应用程序发布到云端。

注意事项

  • DotNetCoreCLI@2 Publish任务和PublishBuildArtifacts@1任务的区别在于前者用于发布应用程序本身,而后者用于发布构建生成的发布文件到Azure DevOps工件存储区。
  • 如果在Azure DevOps中没有看到“Artifacts”选项,可能是因为没有构建生成的发布文件被发布到工件存储区,或者您可能需要查看其他部分以获取更多关于构建和发布的信息。

希望上述解决方案能够帮助您更好地理解Azure DevOps构建与发布过程的工作原理。如有疑问,请随时提问。

正文完