Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

Отмена рабочего процесса

Вы можете отменить выполняемый рабочий процесс. При отмене выполнения рабочего процесса GitHub отменит также все задания и шаги, которые являются частью этого рабочего процесса.

Примечание. В GitHub Enterprise Server в настоящее время не поддерживаются средства выполнения тестов, размещенные в GitHub. Дополнительные сведения о планируемой поддержке в будущем см. в GitHub public roadmap.

Для выполнения этих действий требуется доступ для записи в репозиторий.

Отмена запуска рабочего процесса

  1. На экземпляр GitHub Enterprise Server перейдите на главную страницу репозитория. 1. Под именем репозитория щелкните Действия. Вкладка "Действия" на главной панели навигации по репозиторию 1. На левой боковой панели щелкните нужный рабочий процесс.

    Снимок экрана: левая боковая панель вкладки "Действия". Рабочий процесс CodeQL выделен темно-оранжевым цветом.

  2. В списке запусков рабочих процессов выберите имя запуска queued или in progress, который нужно отменить.

  3. В правом верхнем углу рабочего процесса нажмите кнопку Отмена рабочего процесса. Снимок экрана: сводка по рабочему процессу, который выполняется в данный момент. Кнопка "Отмена рабочего процесса" выделена темно-оранжевым контуром.

Действия, выполняемые на GitHub для отмены запуска рабочего процесса

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

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