Azure devops azure devops-定义构建和发布顺序

Azure devops azure devops-定义构建和发布顺序,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,我确实有多个构建在监视同一存储库/分支。有没有办法定义执行构建/发布的顺序?可以在生成完成时定义触发器,启动另一个触发器,但此方法不能并行运行生成。没关系,如果我能定义发布顺序的话。我一直在寻找,但找不到实现这一目标的方法。有可能吗?您可以定义生成(CI)和发布(CD)的执行顺序 定义构建顺序的步骤 如果要定义CI构建的执行,最简单的方法是使用YAML和多作业模型。然后安排每项工作取决于首先要完成的其他工作 例如: jobs: - job: JOB1 pool: vmImage:

我确实有多个构建在监视同一存储库/分支。有没有办法定义执行构建/发布的顺序?可以在生成完成时定义触发器,启动另一个触发器,但此方法不能并行运行生成。没关系,如果我能定义发布顺序的话。我一直在寻找,但找不到实现这一目标的方法。有可能吗?

您可以定义生成(CI)和发布(CD)的执行顺序

定义构建顺序的步骤
如果要定义CI构建的执行,最简单的方法是使用YAML和多作业模型。然后安排每项工作取决于首先要完成的其他工作

例如:

jobs:
- job: JOB1
  pool:
    vmImage: 'vs2017-win2016'

  steps:
  - script: |
      echo "hello from vmImage vs2017-win2016"
      echo "compile webnoauth.csproj using VS2017"

  - task: MSBuild@1
    displayName: Build WebFormsNoAuth.csproj
    inputs:
      solution: $(Build.SourcesDirectory)\aspnetfx\ASPNET.WebForms.v4.7.2\ASPNET.WebForms.v4.7.2.sln
      msbuildLocationMethod: version
      msbuildVersion: '15.0'
      configuration: "Release"
      msbuildArguments: /nologo /p:DeployOnBuild=true /p:PublishProfile=FolderProfile2
      clean: 'false'
      maximumCpuCount: 'false'

  - script: |
      echo "copy result to staging"
      xcopy $(Build.SourcesDirectory)\aspnetfx\ASPNET.WebForms.v4.7.2\WebFormsNoAuth\bin\Release\Publish $(Build.ArtifactStagingDirectory) /E
  - task: PublishBuildArtifacts@1

- job: JOB2
  dependsOn: JOB1
  pool:
    vmImage: 'win1803'
  steps:
  - script: |
      echo "hello from vmImage win1803"
      md buildresult
      echo "copy buildresult into build folder"
      xcopy $(Build.ArtifactStagingDirectory) buildresult /E
      echo "begin build docker image"

- job: JOB3
  dependsOn: JOB2
  pool:
    vmImage: 'win1803'
  steps:
  - script: |
      echo "Other job to be run in JOB 3"

有关YAML多作业的更多信息,请参见以下文档:

定义发布顺序
通过确保发布阶段的继续(在Azure DevOps管道术语中称为environment),简单地安排发布顺序。通常,可视化从左到右开始,看起来像一个流

例如,您可能有Dev、SIT和Production版本的订单安排


Azure DevOps管道上阶段安排的官方文档如下:

关于构建顺序,您可以在市场中找到触发/排队新构建的方法,例如:

可用于触发新生成的生成任务,以便 构建链接是可能的。还支持条件触发器

任务的当前版本(V3)如下所示:

例如,假设您希望按此特定顺序运行以下生成:

  • B1
  • B2

  • B1将在代码更改时触发(持续集成),构建的最后一个任务就是我上面提到的触发构建B2的任务。B2将被设置为手动构建。

    对于发布版,您应该创建一个单独的环境,在该环境中,您可以一个接一个地执行发布,因为询问者希望按顺序对构建进行排序,因此,如果成功构建上一个序列,将自动触发下一个序列。触发器任务对于链构建很有用,但它主要不关心实际的顺序。