Skip to main content

Enterprise Server 3.15 в настоящее время доступен в качестве кандидата на выпуск.

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

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

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

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

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

  1. На GitHubперейдите на главную страницу репозитория.

  2. Под именем репозитория щелкните Actions.

    Снимок экрана: вкладки для репозитория github/docs. Вкладка "Действия" выделена оранжевым контуром.

  3. На левой боковой панели щелкните нужный рабочий процесс.

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

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

  5. В правом верхнем углу рабочего процесса нажмите кнопку Отмена рабочего процесса.

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

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

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

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