Skip to main content

Enterprise Server 3.21 은(는) 현재 릴리스 후보로 제공됩니다.

워크플로 취소 참조

GitHub가 워크플로 실행을 취소하기 위해 수행하는 단계에 대한 정보를 확인하세요.

워크플로 실행을 취소할 때 워크플로 실행과 관련된 리소스를 사용하는 다른 소프트웨어를 실행 중일 수 있습니다. 워크플로 실행과 관련된 리소스를 확보할 수 있도록 워크플로 실행을 취소하기 위해 수행하는 단계를 GitHub 이해하는 데 도움이 될 수 있습니다.

  1. 워크플로 실행을 취소하기 위해 서버는 현재 실행 중인 모든 작업에 대한 if 조건을 다시 평가합니다. 조건이 true로 평가되면 작업이 취소되지 않습니다. 예를 들어 if: always() 조건은 true로 평가되고 작업이 계속 실행됩니다. 조건이 없으면 이전 단계가 성공적으로 완료된 경우에만 실행되는 if: success() 조건과 동일합니다.
  2. 취소해야 하는 작업의 경우 서버는 취소해야 하는 작업이 있는 모든 실행기 컴퓨터에 취소 메시지를 보냅니다.
  3. 계속 실행되는 작업의 경우 서버는 완료되지 않은 단계에 대해 if 조건을 다시 평가합니다. 조건이 true로 평가되면 단계가 계속 실행됩니다. cancelled 표현식을 사용하여 cancelled()의 상태 검사를 적용할 수 있습니다. 자세한 내용은 워크플로 및 작업에서 식 평가을(를) 참조하세요.
  4. 취소해야 하는 단계에 대해서는, 실행기 머신이 해당 단계의 진입 프로세스(JavaScript 작업의 경우 SIGINT/Ctrl-C, 컨테이너 작업의 경우 node, 단계에서 docker을 사용하는 경우에는 bash/cmd/pwd)에 run를 보냅니다. 프로세스가 7,500ms 이내에 끝나지 않으면 실행기는 SIGTERM/Ctrl-Break를 프로세스로 보낸 다음 프로세스가 종료될 때까지 2,500ms를 기다립니다. 프로세스가 계속 실행 중이면 실행기에서 프로세스 트리를 종료합니다.
  5. 5분 취소 시간 제한 기간이 지나면 서버는 여전히 실행 중인 취소로 표시된 모든 작업 및 단계를 강제로 종료합니다.