При отмене выполнения рабочего процесса может быть запущено другое программное обеспечение, использующее ресурсы, связанные с выполнением рабочего процесса. Чтобы освободить ресурсы, связанные с запуском рабочего процесса, полезно понять шаги 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-минутного тайм-аута после отмены сервер принудительно завершает все задания и шаги, отмеченные как отмены, которые всё ещё выполняются.