Триггер GitLab Pipeline: перезапустить последний помеченный конвейер - PullRequest
0 голосов
/ 20 апреля 2019

У нас есть приложение (назовем его репозиторий main) на GitLab CE, в котором есть конвейер производственной сборки и развертывания, который запускается только при развертывании тега. Это достигается в .gitlab-ci.yml через:

only:
  - /^v.*$/
except:
  - branches

У нас также есть два других (назовем их side) хранилища (например, переводы и утилиты). Чего я хотел бы добиться, так это повторно запустить конвейер самого последнего (semver) тега main, когда одна из главных ветвей этих других side репозиториев получит толчок. Небольшая деталь в том, что один из репозиториев находится на GitHub, но я был бы рад, если бы они сначала работали над GitLab, а затем работали оттуда.

Полагаю, мне нужно использовать API GitLab для запуска конвейера. В настоящее время я настроил репо side на GitLab - это интеграция с веб-крюками для событий push: https://gitlab.com/api/v4/projects/{{ID}}/ref/master/trigger/pipeline?token={{TOKEN}}, где ID - это идентификатор проекта main и TOKEN маркер развертывания для него.

Однако, это только вызовет главный конвейер для нашего main репо. Как я могу получить это (также) для повторного запуска конвейера последнего тега (или самого последнего тега конвейера)?

Во-вторых, как бы я запустил это на GitHub?

1 Ответ

1 голос
/ 20 апреля 2019

Либо вы можете создать новый конвейер, указав ref, который может быть ответвлением или тегом, поэтому в этом случае вам нужно знать точное значение тега https://docs.gitlab.com/ee/api/pipelines.html#create-a-new-pipeline

Или вы можете повторить уже выполненный конвейер с помощьюпредоставляя id, который вы можете получить из https://docs.gitlab.com/ee/api/pipelines.html#list-project-pipelines путем сортировки по id и фильтрации по ref, но он даст вам последний конвейер с тегом /^v.*$/, который может не совпадать с конкретнымнужная вам версия.

...