Попытка собрать воедино документацию (https://docs.microsoft.com/en-us/azure/devops/pipelines/process/pipeline-triggers) по триггеру / ресурсам, чтобы создать набор конвейеров, у которых будет конвейер сборки, запускаемый фиксацией, и когда этот конвейер завершает конвейер развертывания, использует артефакты и развертывает их. Причина наличия отдельного конвейера сборки и развертывания заключается в том, что пакетные коммиты для PR попадают в основную линию (read-as: master)
В то время как приведенные ниже файлы конвейера работают, когда сборка запускается вручную при выполнении фиксации до репо запущены оба трубопровода. Это не то, что нужно. Если триггеры удалены из конвейера развертывания, то триггеры от конвейера к конвейеру работают.
Мы хотим:
- Repo commit
- Построение конвейера запускается
- Построение конвейера публикует артефакты
- Развертывание конвейера запускается
- Развертывание конвейера использует артефакты
- Развертывание конвейера развертывает артефакты
build-pipeline.yml
name: $(date:yyyy).$(date:MM).$(date:dd)$(rev:.r)
trigger:
- master
- feature/*
pool:
vmImage: 'ubuntu-latest'
variables:
artifactsName: "artifacts"
steps:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
Write-Host "Executing Build"
Write-Host "Creating Artifacts"
New-Item -Type Directory -Path $(artifactsName)
$artifactPath = Join-Path -Path $(artifactsName) -ChildPath "$(Build.BuildNumber).txt"
Set-Content -Path $artifactPath -Value "$(Get-Date)"
pwsh: true
- task: PublishPipelineArtifact@1
inputs:
targetPath: $(artifactsName)
artifactName: buildartifacts
deploy-pipeline.yml
resources:
pipelines:
- pipeline: buildpipeline
source: -splitpipeline-build
trigger:
branches:
include:
- master
- feature/*
pool:
vmImage: 'ubuntu-latest'
steps:
- script: echo Deploy Step
displayName: 'Deploy'