Игнорируется тайм-аут задания рабочего процесса GitHub-минуты. Почему?

#github #continuous-integration #github-actions #stryker

#github #непрерывная интеграция #github-действия #stryker

Вопрос:

Согласно https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes

Параметр 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 /…