본문 바로가기
C.W.K.
Stream
Lesson 11 of 12 · published

GitHub Actions 비용

~10 min · billing, cost, minutes

Level 0견습생
0 XP0/101 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

무료 한도는 넉넉하지만 무한은 아니야

GitHub Actions 청구는 러너 사용 시간(분)을 기준으로 해. 무료 한도는 이렇게 돼(2026년 기준이고, 정확한 건 문서에서 확인해):

  • 공개 저장소 — 완전 무료야. 표준 Linux 러너 분은 무제한이고, 대형 러너와 자체 호스팅 러너도 무료야.
  • 비공개 저장소 (Free 플랜) — 계정당 매달 2,000 Linux 분.
  • 비공개 저장소 (Pro) — 3,000분.
  • 비공개 저장소 (Team) — 3,000분.
  • 비공개 저장소 (Enterprise) — 50,000분.

무료 한도를 넘기면 분당 요금이 부과돼. 러너 종류에 따라 요금 차이가 크니까 주의해:

  • Linux — 1배율.
  • Windows — 2배율.
  • macOS — 10배율(CI 청구서에서 가장 비싼 항목이라, 종종 압도적이야).
  • 대형 러너(4코어, 8코어, GPU) — 배수 요금이 적용돼.

비용이 실제로 커지는 지점

  1. macOS 러너. iOS나 macOS 전용 테스트가 있다면 얼마나 자주 실행되는지 점검해. PR마다 돌 필요가 없다면 main 브랜치에 머지할 때만 실행되도록 제한해.
  2. 분산되는 크론 작업. 30개 작업 매트릭스를 실행하는 야간 빌드가 시간을 엄청 잡아먹어.
  3. 매 푸시마다 재실행. 같은 브랜치에 새로 푸시할 때 진행 중인 실행을 취소하도록 concurrency 그룹을 사용해.
  4. 이 PR에 안 도는 게 맞는 테스트. paths: 필터나 changed-files 액션으로 건너뛰어.

대부분 팀이 점검을 안 해서 CI 비용을 2~3배 더 내고 있어.

Code

Concurrency — 새 푸시 시 이전 실행 취소·yaml
name: ci
on: { pull_request: {}, push: { branches: [main] } }

# Cancel in-progress runs for the same PR or branch.
concurrency:
  group: ci-${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: pytest -q

External links

Exercise

관리 중인 저장소나 조직에서 Settings → Billing → Plans and usage를 열어봐. 이번 달 Actions 사용 시간과 운영체제별 분석을 확인해. macOS가 목록 어디에든 있으면 담당 워크플로 파일을 찾아서, 정말 모든 PR에서 실행해야 하는지 판단해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.