C.W.K.
Stream
Lesson 07 of 12 · published

Git 이 기반

~12 min · git, events, branches

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

Pipeline 은 Git 이벤트에 반응해

모든 CI/CD 시스템은, marketing 밑에서 보면, Git event listener 야. Push, tag, pull request — 이게 workflow 를 시작시키는 trigger 야. Git 을 잘 이해하면 CI/CD 의 절반을 이미 이해한 거야.

GitHub 에서 중요한 event 들:

  • push — 어떤 branch 든, 특정 branch 만 필터링 가능.
  • pull_request — opened, synchronized (새 commit push), reopened, ready_for_review.
  • tag push — 보통 release pipeline 용 (v1.2.3 tag 를 push → release workflow trigger).
  • schedule — cron 같은 거, nightly build / dependency scan 용.
  • workflow_dispatch — UI 나 API 에서 수동 trigger.
  • repository_dispatch — 외부 시스템이 repo 를 ping.

Branching 전략과 CI 모양

흔한 두 branching 전략이 CI 에 매우 다른 영향을 줘:

  • Trunk-based — short-lived feature branch, 매일 merge. CI 가 모든 PR 과 main push 마다 돔. 매끄럽고 빠르지만 discipline 필요.
  • Git Flow — long-lived develop, release, hotfix branch. CI 더 복잡 (branch 클래스 별 다른 gate). 느리고 ceremony 많고, 느린 release cadence 에 유용 (규제 산업, packaged software).

전략을 먼저 골라; CI 구조는 그 다음에 따라와.

Code

Workflow 별 다른 trigger·yaml
# .github/workflows/pr.yml — runs on PRs only
name: pr-checks
on:
  pull_request:
    types: [opened, synchronize, reopened]

# .github/workflows/release.yml — runs on tag pushes
name: release
on:
  push:
    tags: ['v*.*.*']

# .github/workflows/nightly.yml — runs at 06:00 UTC daily
name: nightly
on:
  schedule:
    - cron: '0 6 * * *'
  workflow_dispatch: {}

External links

Exercise

Repo 의 모든 workflow 파일을 나열해 (없으면 public repo 하나 골라). 각각: 어떤 Git event 가 trigger 하는지, 어떤 branch/tag 에서, 어떤 카테고리 작업인지 (lint? test? release? schedule?) 적어. 중복 발견.

Progress

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

댓글 0

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

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