피드로 돌아가기
GitHub Actions adds a background marker, and the linear job stops being the only shape
Dev.toDev.to
DevOps

GitHub Actions의 background 키워드 도입을 통한 CI 파이프라인 병렬화 및 실행 시간 단축

GitHub Actions adds a background marker, and the linear job stops being the only shape

Leo2026년 6월 26일4intermediate

Context

기존 GitHub Actions의 모든 Step은 순차적으로 실행되는 Linear 구조로 설계됨. 독립적인 작업임에도 이전 Step의 완료를 기다려야 하는 구조적 제약으로 인해 전체 Workflow 실행 시간이 불필요하게 늘어나는 병목 현상 발생.

Technical Solution

  • background: true 설정을 통한 Step 실행의 Non-blocking 구조 전환
  • waitwait-all 키워드를 활용한 분산 작업의 동기화 지점(Rendezvous) 설계
  • cancel 명령어를 통한 Sidecar 프로세스의 Graceful Termination 구현
  • parallel 래퍼 도입으로 Fan-out/Join 패턴의 선언적 정의 및 관리 효율화
  • Critical Path에서 제외 가능한 텔레메트리 전송 및 아티팩트 업로드 작업을 백그라운드로 분리하여 전체 Latency 최적화

- CI 파이프라인 내 상호 의존성이 없는 독립적 Step(Lint, Type Check, Test 등) 식별 및 병렬화 적용 - DB 컨테이너 등 Sidecar 프로세스 구동 시 `background`와 `cancel` 조합을 통한 리소스 생명주기 관리 - 병렬 실행 시 발생하는 Log Interleaving 현상 및 공유 리소스(파일 경로, API Rate Limit)에 대한 Race Condition 검토 - Self-hosted Runner 사용 시 병렬 Step 증가에 따른 CPU/Memory 부하 및 Concurrency 임계치 측정

원문 읽기