Можно ли в GitLab настроить запланированный конвейер, который периодически запускается во всех ветвях?

Я использую GitLab для контроля версий Git и GitLab CI / CD для своих автоматических сборок. Обычно сборки запускаются активностью репозитория Git, но у меня также есть еженедельная сборка, чтобы гарантировать, что проекты, не находящиеся в активной разработке, продолжают работать. Когда в проекте есть только «главная» ветвь, легко гарантировать, что еженедельная сборка запускается на самом последнем коде. Когда в проекте несколько ветвей, я хотел бы повторить работу конвейера для каждой из них по очереди.

Что я хотел бы сделать, так это запланировать сборку (еженедельно, раз в две недели или ежемесячно), которая будет запускаться во всех текущих ветках, видимых в Git. Возможно ли это в системе непрерывной доставки GitLab?


Это делается для того, чтобы внешние действия, такие как обновления инструментов и библиотек, не вызывали проблем, если они не были незамедлительно видны. При наличии разумного автоматизированного тестирования, покрытия и комплексных сборок для целевых платформ, ежемесячная сборка с использованием новейших инструментов должна быстро выявить проблему. Это лучше, чем невидимая гора для накопления проблем, пока проект откладывается на несколько лет (или месяцев). Иногда все, что требуется, - это периодическое обслуживание.

В настоящее время в проектах есть только несколько функциональных веток и линий выпуска. Я бы не ожидал, что это число значительно вырастет. В выходные есть достаточно времени, чтобы запустить необходимые трубопроводы десятки, если не сотни раз.


В идеале я бы хотел что-то простое в настройке. В настоящее время в графическом интерфейсе администратора я не вижу ничего, что позволяло бы это сделать. Я посмотрел на API и вижу, что там есть некоторые возможности для добавления и удаления скриптов. Возможно, единственный способ - это сценарий, который запускается раз в месяц для создания новых запланированных конвейеров на основе веток git. Готовое решение по этим линиям было бы вполне приемлемо. Если ничего не существует, я мог бы вовремя начать работу над чем-то подобным.

В настоящее время я использую GitLab Community Edition 11.2.3 06cbee3 (GitLab CE 11.2.3). Если есть ответ только для Enterprise Edition, это нормально и будет добавлено к обоснованию покупки EE-версии. Я бы выбрал CE один выше EE.

Маловероятно, IMO, что вы действительно захотите запустить ночной конвейер для ветвей все, поскольку у вас, вероятно, будут различные идеи, функции и т. д. Ветки, которые находятся в различных состояниях неисправности. Просто беспокойтесь о master и любых имеющихся у вас ветках активных релизов. Это должно быть небольшое число, которое можно настроить вручную.

Jonathon Reinhart 17.09.2018 14:00

@JonathonReinhart Я специально избегал слова «ночь», так как считаю, что это будет слишком часто. Даже еженедельно, наверное, больше, чем нужно. Частично мотивация состоит в том, чтобы побудить ветки, которые висят вокруг, быть в хорошем состоянии или быть удалены. Я работал там, где в течение многих лет оставались десятки идей и тематических веток, и никто не был уверен, нужны они им или нет. Когда требовалось несколько, им потребовалась пара недель, чтобы заставить их снова работать.

TafT 17.09.2018 15:06
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
802
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Perhaps some script that is run once a month to create new Scheduled pipelines based on git branches is the only way.

Я бы пошел по этому пути.

Наверное, мне следовало сформулировать вопрос на том основании, что это возможно. «Как мне ... автоматически?». Ваш ответ совпадает с моими текущими выводами. Я приму его через несколько дней, если не будет достигнут другой консенсус.

TafT 17.09.2018 13:57

Другие вопросы по теме