При отмене выполнения рабочего процесса может быть запущено другое программное обеспечение, использующее ресурсы, связанные с выполнением рабочего процесса. Чтобы освободить ресурсы, связанные с запуском рабочего процесса, может быть полезно понимать, как именно запуск рабочего процесса отменяется на GitHub.
- Чтобы отменить запуск рабочего процесса, сервер повторно оценивает условия
ifдля всех выполняющихся в настоящее время заданий. Если условие оценивается какtrue, задание не отменяется. Например, условиеif: always()будет иметь значение true, и задание продолжит выполняться. Если условие отсутствует, это эквивалентно условиюif: success(), которое выполняется только в случае успешного завершения предыдущего шага. - Для заданий, которые необходимо отменить, сервер отправляет всем компьютерам выполнения сообщение об отмене с указанием соответствующих заданий.
- Для заданий, которые продолжают выполняться, сервер повторно оценивает условия
ifдля незавершенных шагов. Если условие оценивается какtrue, шаг продолжает выполняться. Выражение можно использоватьcancelledдля применения проверкиcancelled()состояния. Дополнительные сведения см. в разделе Оценка выражений в рабочих процессах и действиях. - Для шагов, которые необходимо отменить, компьютер-средство запуска отправляется
SIGINT/Ctrl-Cв процесс записи шага (nodeдля действий JavaScript,dockerдля действий контейнера иbash/cmd/pwdпри использованииrunна шаге). Если процесс не завершается в течение 7500 мс, средство выполнения отправитSIGTERM/Ctrl-Breakв процесс, а затем будет ждать завершения процесса еще 2500 мс. Если процесс по-прежнему выполняется, средство выполнения завершает его дерево. - После 5-минутного периода ожидания отмены сервер принудительно завершит все задания и шаги, которые по-прежнему выполняются.