CI, GitHub Actions와 릴리스
중요도: 중요 · 원본 협업 가이드에서 이 주제에 필요한 내용을 모았습니다.
21. GitHub Actions
GitHub Actions는 GitHub Repository에서 발생하는 Event를 기준으로 자동화 작업을 실행할 수 있는 기능이다.

대표적으로:
- Build
- Test
- Lint
- Packaging
- Release
- Deployment
등을 자동화할 수 있다.
Unity 프로젝트라면 예를 들어:
Pull Request Open
↓
GitHub Actions
↓
Unity Test
↓
Unity Build
↓
Success / Fail
과 같은 흐름을 만들 수 있다.
GitHub Actions의 핵심 구조
Event / Trigger
↓
Workflow
↓
Job
↓
Step
↓
Runner
조금 더 풀어보면:
Pull Request 생성
│
│ Event
▼
┌──────────────────────┐
│ Workflow │
│ │
│ Job: Test │
│ ├─ Step │
│ ├─ Step │
│ └─ Step │
│ │
│ Job: Build │
│ ├─ Step │
│ └─ Step │
└──────────┬───────────┘
│
Runner
│
▼
✅ / ❌
Workflow
자동화 전체 Process.
보통 Repository의 다음 경로에 YAML 파일로 작성한다.
.github/workflows/
예:
.github/workflows/build.yml
Event / Trigger
Workflow를 실행하게 만드는 조건.
대표적으로:
push
pull_request
workflow_dispatch
workflow_dispatch
GitHub 화면에서 사용자가 직접 Workflow를 실행할 수 있도록 하는 Trigger.
Job
Workflow 안에서 수행되는 큰 작업 단위.
예:
Test
Build
Package
Job은 서로 병렬로 실행되거나 순서를 가질 수도 있다.
Step
Job 안에서 실제로 실행되는 세부 단계.
예:
Checkout
↓
Dependency 준비
↓
Test 실행
↓
Build 실행
Runner
Workflow를 실제로 실행하는 컴퓨터 환경이다.
GitHub가 제공하는 Runner 예:
Ubuntu
Windows
macOS
직접 관리하는 Self-hosted Runner를 사용할 수도 있다.
Action
반복적으로 사용되는 자동화 동작을 재사용할 수 있게 만든 Component.
대표적인 예:
actions/checkout
Runner가 Repository Code를 가져오게 해주는 Action이다.
22. GitHub Actions와 CI의 차이
둘은 같은 말이 아니다.
GitHub Actions
= 자동화를 실행하는 도구
CI
= 지속적으로 변경 사항을 통합하고 자동 검증하는 개발 Practice
즉,
GitHub Actions를 이용해 CI를 구축한다.
라고 표현하는 것이 더 정확하다.
23. CI / Status Check
CI — Continuous Integration
여러 개발자의 변경 사항을 자주 통합하면서 Build나 Test 등을 자동으로 검증하는 방식.
PR을 만들었을 때:
Build ✅
Test ✅
가 확인되면 Merge에 대한 신뢰도를 높일 수 있다.
Status Check
GitHub에서 자동화 결과를 PR에 표시하는 상태 정보.
Build ✅
Test ✅
또는:
Build ❌
Ruleset과 연결하면:
CI 실패
↓
Merge 차단
도 가능하다.
24. Artifact / Secret / Cache
Artifact
Workflow 실행 중 생성된 결과물을 저장할 수 있다.
Unity에서는 예를 들어:
Windows Build
Test Report
Log
Game.zip
같은 결과물을 Artifact로 남길 수 있다.
Secret
Token, API Key, Webhook URL처럼 공개되면 안 되는 값을 안전하게 저장하는 기능.
예:
UNITY_LICENSE
DISCORD_WEBHOOK
API_KEY
민감한 값을 Workflow YAML에 직접 작성하지 않는다.
Cache
Dependency나 Build 중간 결과처럼 반복해서 사용하는 데이터를 재사용하여 Workflow 실행 시간을 줄이는 방법.
처음에는:
"CI가 느릴 때 사용하는 최적화 기능"
정도로 이해해도 충분하다.
25. GitHub Template
Issue Template
Issue를 만들 때 일정한 형식을 제공한다.
예:
Bug Report
Feature Request
Bug Template 예:
Environment
Steps to Reproduce
Expected Behavior
Actual Behavior
Screenshot / Video
Pull Request Template
PR 생성 시 작성할 내용을 자동으로 제공한다.
예:
Summary
Changes
Review Point
Test
Related Issue
Template을 사용하면 중요한 내용을 빼먹을 가능성이 줄어든다.
26. Tag / Release / Version
Tag
특정 Commit에 이름을 붙이는 기능.
v0.1.0
v0.2.0
v1.0.0
Release
Tag를 기준으로 GitHub에서 배포 Version을 관리할 수 있다.
게임 Build나 Release Note를 함께 제공할 수도 있다.
Semantic Versioning
보통 다음 형태를 사용한다.
MAJOR.MINOR.PATCH
1.4.2
일반적인 의미:
MAJOR
호환성이 깨지는 큰 변경
MINOR
새로운 기능
PATCH
Bug Fix
게임 프로젝트가 반드시 엄격하게 따를 필요는 없지만 Version 체계를 이해하는 데 도움이 된다.