개요
참고: 작업 수준에서 동시성이 지정되면 작업 순서가 보장되지 않거나 서로 5분 이내에 해당 큐를 실행합니다.
jobs.<job_id>.concurrency
를 사용하여 동일한 동시성 그룹을 사용하는 단일 작업 또는 워크플로만 한 번에 실행되도록 할 수 있습니다. 동시성 그룹은 모든 문자열 또는 식일 수 있습니다. 허용되는 식 컨텍스트: github
, , inputs
, vars
needs
, strategy
및 matrix
. 식에 대한 자세한 내용은 "식"을 참조하세요.
워크플로 수준에서 concurrency
를 지정할 수도 있습니다. 자세한 내용은 concurrency
를 참조하세요.
동시 작업 또는 워크플로가 큐에 대기 중인 경우 리포지토리의 동일한 동시성 그룹을 사용하는 다른 작업 또는 워크플로가 진행 중이면 대기 중인 작업 또는 워크플로는 pending
상태가 됩니다. 동시성 그룹에서 이전에 보류 중인 작업 또는 워크플로는 모두 취소됩니다. 동일한 동시성 그룹에서 현재 실행 중인 작업 또는 워크플로도 취소하려면 cancel-in-progress: true
를 지정합니다.
예: 동시성 및 기본 동작 사용
concurrency: staging_environment
concurrency: ci-${{ github.ref }}
예: 동시성을 사용하여 진행 중인 작업 또는 실행 취소
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
예: 대체 값 사용
특정 이벤트에 대해서만 정의되는 속성으로 그룹 이름을 빌드하는 경우 대체 값을 사용할 수 있습니다. 예를 들어 github.head_ref
는 pull_request
이벤트에서만 정의됩니다. 워크플로가 pull_request
이벤트 외에 다른 이벤트에도 응답하는 경우 구문 오류를 방지하기 위해 대체를 제공해야 합니다. 다음 동시성 그룹은 pull_request
이벤트에서만 진행 중인 작업 또는 실행을 취소합니다. github.head_ref
가 정의되지 않은 경우 동시성 그룹은 실행에 고유하고 정의된 실행 ID로 대체됩니다.
concurrency:
group: ${{ github.head_ref || github.run_id }}
cancel-in-progress: true
예: 현재 워크플로에 대해서만 진행 중인 작업 또는 실행 취소
동일한 리포지토리에 여러 워크플로가 있는 경우 다른 워크플로에서 진행 중인 작업 또는 실행이 취소되지 않도록 워크플로 전체에서 동시성 그룹 이름이 고유해야 합니다. 그렇지 않으면 워크플로에 관계없이 이전에 진행 중이거나 보류 중인 작업이 취소됩니다.
동일한 워크플로의 진행 중인 실행만 취소하기 위해 github.workflow
속성을 사용하여 동시성 그룹을 빌드할 수 있습니다.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
조직 또는 엔터프라이즈에서 현재 작업 모니터링
동시성 또는 큐가 있는 제약 조건을 식별하려면 조직 또는 엔터프라이즈에서 GitHub 호스팅 실행기에서 현재 처리 중인 작업 수를 확인합니다.
자세한 내용은 "현재 작업 모니터링"을 참조하세요.