#github #continuous-integration #github-actions #stryker
#github #непрерывная интеграция #github-действия #stryker
Вопрос:
Параметр timeout-minutes по умолчанию равен 360 минутам (6 часам).
Я распараллелил свое тестирование мутаций, так что мой рабочий процесс занимает около 6,5 часов (тестирование мутаций с Stryker из ~ 1600 мутантов всего на 2 ядрах — 9 заданий параллельно). Таким образом, я установил время ожидания в минутах на 420 минут (7 часов) для задания мутации на всякий случай: https://github.com/lbragile/TabMerger/blob/b53a668678b7dcde0dd8f8b06ae23ee668ff8f9e/.github/workflows/testing.yml#L53
Похоже, это игнорируется, поскольку рабочий процесс по-прежнему завершается через 6 часов 23 минуты (без предупреждений / ошибок): https://github.com/lbragile/TabMerger/runs/2035483167?check_suite_focus=true
Почему игнорируется мое значение?
Кроме того, могу ли я что-нибудь сделать, чтобы использовать больше процессоров на виртуальной машине workflows?
Ответ №1:
Время выполнения заданий, размещенных на GitHub, ограничено максимум 6 часами на задание.
Ограничения использования
Существуют некоторые ограничения на использование действий GitHub при использовании размещенных на GitHub бегунов. Эти ограничения могут быть изменены.
[…]
- Время выполнения задания — каждое задание в рабочем процессе может выполняться до 6 часов времени выполнения. Если задание достигает этого предела, задание завершается и не завершается.
https://docs.github.com/en/actions/reference/usage-limits-billing-and-administration#usage-limits
Комментарии:
1. Большое вам спасибо. Я нигде не смог найти эту информацию … так что единственным решением было бы использовать автономные раннеры или каким-то образом ускорить выполнение задания?
2. Да, насколько я знаю, это единственно возможные варианты.
3. Хорошо, просто чтобы поделиться тем, что я нашел — GitHub не рекомендует использовать автономные раннеры в общедоступных репозиториях, поскольку это может привести к уязвимостям в раннере. docs.github.com/en/actions/hosting-your-own-runners /…