참고: GitHub 호스트 실행기는 현재 GitHub Enterprise Server에서 지원되지 않습니다. GitHub public roadmap에 예정된 향후 지원에 대해 자세히 알아볼 수 있습니다.
개요
참고: 작업 수준에서 동시성이 지정되면 작업 순서가 보장되지 않거나 서로 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