Каждое задание имеет свой собственный рабочий каталог по умолчанию, и оно отдельно от других заданий, оно устанавливается агентом автоматически и не может быть изменено. Таким образом, вы не можете запускать каждое задание в одном и том же рабочем каталоге агента.
Существует обходной путь для загрузки нескольких репозиториев в одной рабочей папке и их построения в одном задании.
Вы можете запустить git команда в задаче powershell для клонирования нескольких репозиториев в одном рабочем каталоге. А затем установите задачи сборки для каждой папки репо, чтобы построить каждое решение. Проверьте приведенный ниже пример:
Вам потребуется использовать PAT для проверки подлинности. Отметьте здесь , чтобы сгенерировать PAT с Область чтения и записи кода
- powershell: |
git clone https://{PAT}@dev.azure.com/{org}/{proj}/_git/Repo1 #repo1 will be cloned into folder Repo1 under $(Build.SourcesDirectory)
#cd Repo1 #cd the code folder
- powershell: |
git clone https://{PAT}@dev.azure.com/{org}/{proj}/_git/Repo2 #repo1 will be cloned into folder Repo2 under $(Build.SourcesDirectory)
#cd Repo2 #cd the code folder
....
- task: Build tasks1 #point the solution folder to $(Build.SourcesDirectory)/Repo1
...
- task: Build tasks2 #point the solution folder to $(Build.SourcesDirectory)/Repo2
...
#- task: Copy file task # copy the built artifacts to a specified folder.
- task: publish build artifacts task #to publish repo1 artifacts
....
- task: publish build artifacts task #to publish repo2 artifacts
....
Вы также можете использовать Задание копирования файла для перемещения встроенные артефакты в разные папки.
Используя команду клона git в задаче powershell для клонирования репозиториев, вы можете объединить свои задания и этапы в одно задание.
Обновление:
После проверки выше конвейера yaml и тестирования я обнаружил, что - checkout: Secondary.Repository
вызвал создание новых папок при повторном запуске конвейера.
Временное решение: использовать задачу powershell для клон Secondary.Repository
вместо использования - checkout: Secondary.Repository
. Пожалуйста, ознакомьтесь с вышеупомянутым обходным решением.
Вы также можете сообщить об этой проблеме в Microsoft, Сообщив о проблеме (Нажмите Сообщить о проблеме и выберите Azure devops)
Надеюсь выше помогает.