Azure devops azure devops-定义构建和发布顺序
我确实有多个构建在监视同一存储库/分支。有没有办法定义执行构建/发布的顺序?可以在生成完成时定义触发器,启动另一个触发器,但此方法不能并行运行生成。没关系,如果我能定义发布顺序的话。我一直在寻找,但找不到实现这一目标的方法。有可能吗?您可以定义生成(CI)和发布(CD)的执行顺序 定义构建顺序的步骤Azure devops azure devops-定义构建和发布顺序,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,我确实有多个构建在监视同一存储库/分支。有没有办法定义执行构建/发布的顺序?可以在生成完成时定义触发器,启动另一个触发器,但此方法不能并行运行生成。没关系,如果我能定义发布顺序的话。我一直在寻找,但找不到实现这一目标的方法。有可能吗?您可以定义生成(CI)和发布(CD)的执行顺序 定义构建顺序的步骤 如果要定义CI构建的执行,最简单的方法是使用YAML和多作业模型。然后安排每项工作取决于首先要完成的其他工作 例如: jobs: - job: JOB1 pool: vmImage:
如果要定义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的任务。B2将被设置为手动构建。对于发布版,您应该创建一个单独的环境,在该环境中,您可以一个接一个地执行发布,因为询问者希望按顺序对构建进行排序,因此,如果成功构建上一个序列,将自动触发下一个序列。触发器任务对于链构建很有用,但它主要不关心实际的顺序。