#azure-devops #azure-pipelines
#azure-devops #azure-конвейеры
Вопрос:
У меня есть многоступенчатый конвейер, который создает несколько приложений. Я генерирую общий тег один раз за запуск конвейера. Как мне заставить конвейер обновлять каждый исходный коммит одним и тем же тегом? Использование параметров тегирования пользовательского интерфейса приводит к обновлению только исходного репозитория, содержащего файл конвейера YAML, а не каких-либо дополнительных источников.
Комментарии:
1. Где вы храните свой код в репозиториях Azure, Github? Правильно ли я вас понял, что вы используете много репозиториев в своем многоступенчатом конвейере?
Ответ №1:
Как мне заставить конвейер обновлять каждый исходный коммит одним и тем же тегом?
Вы можете использовать команды git для создания одинаковых меток и добавления их во все репозитории.
Вот сценарий:
- task: CmdLine@2
inputs:
script: |
git tag -a {tag} -m "{tag description}"
git push origin --tags
Если вы проверяете только один репозиторий на этапе, вы можете добавить эту задачу к этапам.
Если вы просматриваете более одного репозитория на этапе, переключитесь на соответствующий каталог, прежде чем добавлять тег:
- task: CmdLine@2
inputs:
script: |
cd {repository A}
git tag -a {tag} -m "{tag description}"
git push origin --tags
cd ..
cd {repository B}
git tag -a {tag} -m "{tag description}"
git push origin --tags
...
Добавьте эти задачи ко всем этапам, и вы обнаружите, что последние коммиты из всех репозиториев будут помечены.
Ответ №2:
Цитируя ответ Брэди Уайта от https://developercommunity.visualstudio.com/t/missing-gui-option-create-git-tag-after-successful/1007477 :
- Отредактируйте свой конвейер.
- В меню «…» справа от кнопки запуска выберите Триггеры.
- Выберите вкладку YAML.
- Выберите «Получить источники»
- Оттуда вы устанавливаете для «Tag sources» значение «Никогда», «При успешном выполнении» или «Всегда».
Ответ №3:
При использовании этого подхода теги будут удалены при удалении сборки. Поэтому, если вы не сохраните свои сборки, тег исчезнет.