Я столкнулся со сценарием, в котором я хочу создать исходный код, зависящий от исходного каталога.
У меня есть 2 языка в одном репозитории git (dotnet и Python).
Я хотел собрать исходный код с помощью одного конвейера Azure.
Если фиксация выполняется для обоих (dotnet и Python), должна выполняться вся задача, а если фиксация выполняется для определенного каталога, должен выполняться только соответствующий язык.
Пожалуйста, дайте мне знать, как я могу добиться этого, используя -condition
или есть ли другие альтернативы
Ниже мой azure-pipelines.yml
#Trigger and pool name configuration
variables:
name: files
steps:
- script: $(files) = git diff-tree --no-commit-id --name-only -r $(Build.SourceVersion)"
displayName: 'display Last Committed Files'
## Here I am getting changed files
##Dotnet/Server.cs
##Py/Hello.py
- task: PythonScript@0 ## It should only get called when there are changes in /Py
inputs:
scriptSource: 'inline'
script: 'print(''Hello, FromPython!'')'
condition: eq('${{ variables.files }}', '/Py')
- task: DotNetCoreCLI@2 ## It should only get called when there are changes in /Dotnet
inputs:
command: 'build'
projects: '**/*.csproj'
condition: eq('${{ variables.files }}', '/Dotnet')
Любая помощь будет оценена