Azure Конвейеры CI не срабатывают, выдвигая теги на внешние git - PullRequest
1 голос
/ 19 марта 2020

У меня есть репозиторий на локальном сервере GitLab моей организации, и я хочу запустить конвейер сборки, который затем запустит конвейер релиза и опубликует sh для промежуточных / производственных виртуальных машин.

Я прочитал много статей в документах Microsoft, SO и тоннах блогов, которые вы можете запускать конвейером по тегам, обеспечивающим фильтр веток, например refs/tags/v*. В конфигурации YAML есть дополнительный раздел, специально предназначенный для тегов, однако YAML не поддерживается для git репозиториев, которые подключены как «Other git».

И этот триггер тегов просто никогда не работает. После того, как я настроил триггер, пользовательский интерфейс показывает мне только «v *», поэтому он понимает, что ссылки / теги имеют особое значение. Я могу запустить конвейер вручную, указав точный тег, например refs/tags/v1.0-test, и он работает. Но никогда не запускается автоматически. Триггеры ветвления работают без проблем.

Что я уже пробовал:

  • установить фильтр включения для refs/tags/v* - не работает
  • установить фильтр включения для refs/tags/exacttagname - не работает
  • установить фильтр включения для refs/tags/v* и еще один для master - срабатывает только для мастера
  • установить фильтр включения для refs/tags/v*, для * и исключить фильтры для refs/heads/* и refs/remotes/* - не работает

Я попытался нажать на фиксацию, затем на метку. Попробовал нажать коммит и пометить в одном реквесте с git push ---follow-tags. Пробовал выдвигать теги для старых коммитов. Ничего из этого не работает.

Эта проблема , связанная с той же проблемой, была решена на стороне azure прошлым летом, однако все комментарии касались интеграции GitHub. Так что, может быть, он все еще не работает для "других git" или чего-то еще.

Любая помощь?

1 Ответ

1 голос
/ 20 марта 2020

Я протестировал и получил тот же результат, триггеры тегов для других git не работает. Вы можете отправить запрос на добавление функции (нажмите предложить вариант и выберите Azure devops) для поддержки триггеров тегов для репозитория gitlab команде разработчиков Micrsoft. Пожалуйста, проверьте эту тему , например.

В качестве обходного пути вы можете использовать несколько заданий агента для достижения вышеупомянутых в настоящее время.

Можно добавить еще одно задание агента перед исходным заданием агента, чтобы запустить задачу сценария, и добавить зависимость от него в исходное задание агента. Задача сценария проверит наличие тега, связанного с текущим коммитом. Если тег закрывается, задача сценария будет пройдена, и будет выполнено следующее задание агента. Либо задача скрипта завершится неудачно, и следующее задание агента будет пропущено.

Подробное описание приведено ниже:

  1. добавление задания агента с одной задачей powershell. Проверьте скриншот ниже. enter image description here

  2. Запустите ниже встроенные сценарии в задаче powershell, чтобы проверить теги

    $tags = git describe --tags  $(Build.SourceVersion)     
    
    if($($tags) -notmatch 'v.'){exit 1} #fail the task if the tag doesnot match v*
    
  3. В Исходное задание агента, добавьте зависимостей к вышеуказанному заданию агента.

    enter image description here

  4. Go на вкладку Триггеры и отфильтруйте все ветви.

    enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...