Skip to main content

동시성 사용

한 번에 하나의 작업을 실행합니다.

개요

참고: 작업 수준에서 동시성이 지정되면 작업 순서가 보장되지 않거나 서로 5분 이내에 해당 큐를 실행합니다.

jobs.<job_id>.concurrency를 사용하여 동일한 동시성 그룹을 사용하는 단일 작업 또는 워크플로만 한 번에 실행되도록 할 수 있습니다. 동시성 그룹은 모든 문자열 또는 식일 수 있습니다. 허용되는 식 컨텍스트: github, inputs,vars ,strategyneeds 및 .matrix 식에 대한 자세한 내용은 ".

워크플로 수준에서 concurrency를 지정할 수도 있습니다. 자세한 내용은 concurrency를 참조하세요.

동시 작업 또는 워크플로가 큐에 대기 중인 경우 리포지토리의 동일한 동시성 그룹을 사용하는 다른 작업 또는 워크플로가 진행 중이면 대기 중인 작업 또는 워크플로는 pending 상태가 됩니다. 동시성 그룹에서 이전에 보류 중인 작업 또는 워크플로는 모두 취소됩니다. 동일한 동시성 그룹에서 현재 실행 중인 작업 또는 워크플로도 취소하려면 cancel-in-progress: true를 지정합니다.

참고: 동시성 그룹 이름은 대/소문자를 구분하지 않습니다. 예를 들어 prod Prod 동일한 동시성 그룹으로 처리됩니다.

예: 동시성 및 기본 동작 사용

concurrency: staging_environment
concurrency: ci-${{ github.ref }}

예: 동시성을 사용하여 진행 중인 작업 또는 실행 취소

concurrency:
  group: ${{ github.ref }}
  cancel-in-progress: true

예: 대체 값 사용

특정 이벤트에 대해서만 정의되는 속성으로 그룹 이름을 빌드하는 경우 대체 값을 사용할 수 있습니다. 예를 들어 github.head_refpull_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 호스팅 실행기에서 현재 처리 중인 작업 수를 확인합니다. 자세한 내용은 "Monitoring your current jobs.