ОК, поэтому мы работаем над архитектурой микросервиса и пытаемся развернуть код на azure devOps. на самом деле мы хотим запускать только один конвейер при изменении одного проекта. мы используем monorepo architecute.
Вот как я добавил условие в настоящее время для специфики проекта: c build.yaml
name: $(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd)$(Rev:.r)
steps:
# for PowerShell Core
- pwsh: ./build.ps1
# Restore sms-messaging micro service projects
- task: DotNetCoreCLI@1
displayName: Run dotnet restore
inputs:
command: "restore"
projects: sms-messaging/src/**/*.csproj
condition: and(succeeded(), eq(variables['SmsMessaging'], 'True'))
условие содержит переменную SmsMessaging из сценария powershell это выполняется раньше.
$files=$(git diff HEAD HEAD~ --name-only)
$temp=$files -split ' '
$count=$temp.Length
echo "Total changed $count files"
For ($i=0; $i -lt $temp.Length; $i++)
{
$name=$temp[$i]
echo "this is $name file"
if ($name -like "sms-messaging/*")
{
echo "changes in sms-messaging"
Write-Host "##vso[task.setvariable variable=SmsMessaging]True"
}
}
Таким образом, настоящая проблема заключается в том, что при подталкивании к репо. все трубопроводы срабатывают. Задачи пропускаются из-за добавленного условия. Но мы на самом деле не хотим запускать все конвейеры.
Для этого я создал основной конвейер, в котором были бы сценарий powerShell и переменные. и будет условно запускать другие трубопроводы.
Но я не могу добавить «условие» к этому ямлу.
resources:
pipelines:
- pipeline: SmsMessaging
project: SmsMessaging
source: SmsMessaging
trigger:
branches:
include:
- master
(i want to add condition here maybe if thats possible ? and trigger different pipelines from here. Or if there is another approach)
это правильный подход? Любая помощь приветствуется. Спасибо
РЕДАКТИРОВАТЬ: Я также попытался войти и запустить конвейеры через Powershell.
Invoke-AzDataFactoryV2Pipeline -ResourceGroupName "RGName" -DataFactoryName "FactoryName" -PipelineName "PipelineName"
, но это не позволяет мне запустить конвейер, говоря, что требуется идентификатор организации.