Автоматический запуск задания B после запуска задания в TeamCity - PullRequest
0 голосов
/ 28 апреля 2020

Есть ли способ, которым я могу автоматически запускать задание B ровно через 1 час после запуска задания A, здесь проблема заключается в том, что задание A не завершило бы свою работу в середине самого задания, оно должно запускать задание B, которое слишком точно после час или другой вариант - пропустить построение сценария 2 точно после часа выполнения сценария 1, есть ли способ сделать это?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 04 мая 2020

Я не могу предложить хорошую практику в качестве решения, но я могу предложить два возможных обходных пути:

1. Пауза сборки

Вы можете добавить паузу оболочки «Командная строка» в качестве последнего шага сборки проекта A или первого шага сборки проекта B. Эту паузу необходимо установить на один час:

sleep 1h

Для этого необходимо заново настроить время сборки по умолчанию, иначе задание не будет выполнено.

2. Строгое планирование

Если у вас есть некоторая гибкость в отношении времени, когда А может или должен быть запущен, вы можете использовать «Запуск по расписанию» для планирования как А, так и В, например, если вы запланируете проект А на 1 вечера и проект B до 14:00, вы должны убедиться, что между этими двумя есть хотя бы один час. Это можно запланировать так часто, как это необходимо.

0 голосов
/ 01 мая 2020

Я не думаю, что то, что вы предлагаете, является хорошим способом go по настройке развертывания, но я могу придумать несколько обходных путей, которые могут помочь, если вас заставят в этом направлении.

  • В конфигурации A добавьте шаг сборки, который добавляет запланированный триггер сборки в конфигурацию B на час (с использованием API). В конфигурации B добавьте шаг сборки в конец конфигурации, чтобы удалить этот запланированный триггер. Это похоже на действительно ужасный взлом, которого следует избегать, но подробнее здесь .
  • За пределами TeamCity используется любой механизм публикации / подписки, поэтому развертывание на ВМ может создать событие когда это закончено. Подпишитесь на это событие и запустите сборку с помощью TeamCity API. Например, если вы используете AWS, вы можете иметь SNS topi c с лямбда-функцией в качестве подписчика. Эта лямбда-функция вызывает API для постановки в очередь конфигурации B, когда среда находится в подходящем состоянии.

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

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