3가지만 하면 끝! 나머지는 모두 자동화됩니다.
이 템플릿은 GitHub 템플릿 또는 원격 스크립트로 설치하면 자동으로 초기화됩니다.
사용자는 단 3가지 설정만 하면 모든 자동화가 작동합니다.
- GitHub → Settings → Developer settings → Personal access tokens (Classic)
- Generate new token (classic) 클릭
- 토큰 설정:
- Name:
_GITHUB_PAT_TOKEN - Expiration: 90 days (또는 조직 정책에 따라)
- Scopes: ✅
repo(Full control), ✅workflow(Update workflows)
- Name:
- Generate token 클릭 후 토큰 복사
- 프로젝트 저장소 → Settings → Secrets and variables → Actions
- New repository secret 클릭
- Name:
_GITHUB_PAT_TOKEN - Secret: [위에서 복사한 토큰 값 붙여넣기]
- Add secret 클릭
# deploy 브랜치 생성 및 푸시
git checkout -b deploy
git push -u origin deploy
# main 브랜치로 돌아가기
git checkout main설명: deploy 브랜치는 체인지로그 자동 생성 및 배포 워크플로우가 실행되는 브랜치입니다.
- CodeRabbit 웹사이트 접속
- GitHub 계정으로 로그인
- 저장소 목록에서 프로젝트 선택하여 활성화
.coderabbit.yaml파일이 프로젝트에 있으면 자동으로 설정 적용됨
설명: CodeRabbit은 AI 기반 코드 리뷰 및 체인지로그 자동 생성을 담당합니다.
이제 코드를 푸시하면 모든 자동화가 작동합니다.
- ✅ 버전 자동 증가 (1.0.0 → 1.0.1)
- ✅ README 버전 자동 업데이트
- ✅ Git 태그 자동 생성
- ✅ 체인지로그 자동 생성
프로젝트 생성 즉시 자동 실행:
- ✅
version.yml자동 생성 (v0.0.0, basic 타입) - ✅ 공통 워크플로우 5개 자동 설치:
PROJECT-COMMON-VERSION-CONTROL.yaml(버전 자동 관리)PROJECT-COMMON-AUTO-CHANGELOG-CONTROL.yaml(체인지로그 생성)PROJECT-COMMON-README-VERSION-UPDATE.yaml(README 업데이트)PROJECT-COMMON-ISSUE-COMMENT.yaml(이슈 자동화)PROJECT-COMMON-SYNC-ISSUE-LABELS.yaml(라벨 동기화)
- ✅ README 버전 섹션 자동 추가
- ✅ 불필요한 템플릿 파일 자동 삭제
- ✅ Default 브랜치 자동 감지
# 대화형 모드 (권장)
bash <(curl -fsSL "https://raw.githubusercontent.com/Cassiiopeia/SUH-DEVOPS-TEMPLATE/main/template_integrator.sh")
# 비대화형 모드 (Spring Boot 전체 통합 예시)
bash <(curl -fsSL "https://raw.githubusercontent.com/Cassiiopeia/SUH-DEVOPS-TEMPLATE/main/template_integrator.sh") \
--mode full --type spring --version 1.0.0 --force자동으로 수행되는 작업:
- ✅ 프로젝트 타입 자동 감지 (Spring, Flutter, React, Node, Python 등)
- ✅ 현재 버전 자동 감지 (Git 태그, build.gradle, package.json 등)
- ✅ 프로젝트 타입에 맞는 워크플로우만 선택 복사
- ✅
version.yml자동 생성 - ✅ README에 버전 섹션 자동 추가
- ✅ 버전 관리 스크립트 자동 설치
지원하는 프로젝트 타입:
spring- Spring Boot / Java / Gradleflutter- Flutter / Dartreact- React.js / Next.jsreact-native- React Native (iOS + Android)react-native-expo- Expo 기반 React Nativenode- Node.js / Expresspython- Python / FastAPI / Djangobasic- 기본 타입 (버전 관리만)
- ✅ 커밋 메시지 분석 (
feat:,fix:,docs:등) - ✅ 버전 자동 증가 (1.0.0 → 1.0.1)
- ✅ README 버전 자동 업데이트
- ✅ Git 태그 자동 생성 (
v1.0.1) - ✅ 프로젝트별 버전 파일 동기화:
- Spring:
build.gradle또는pom.xml - Flutter:
pubspec.yaml - React/Node:
package.json - React Native:
package.json,ios/Info.plist,android/build.gradle - Python:
pyproject.toml
- Spring:
- ✅ CodeRabbit AI 자동 코드 리뷰
- ✅ 체인지로그 자동 생성 (
CHANGELOG.json,CHANGELOG.md) - ✅ PR 자동 머지 (리뷰 통과 시)
Organization 저장소에서는 아래 3가지 추가 설정이 필요합니다:
Organization Settings → Actions → General
├── ✅ Allow GitHub Actions to create and approve pull requests
└── ✅ Allow GitHub Actions to merge pull requests
Repository Settings → General → Pull Requests
├── ✅ Allow auto-merge
└── ✅ Allow squash merging
Organization Settings → Member privileges
└── Personal access token expiration policy: 조직 정책에 맞게 설정
💡 개인 저장소는 추가 설정 불필요합니다.
# main 브랜치에 테스트 커밋
echo "# 테스트" >> TEST.md
git add TEST.md
git commit -m "test: 자동화 테스트"
git push origin main예상 결과 (GitHub Actions 탭에서 확인):
PROJECT-COMMON-VERSION-CONTROL워크플로우 실행- 버전 자동 증가 (예: v0.0.0 → v0.0.1)
- Git 태그
v0.0.1자동 생성 - README 버전 자동 업데이트
# feature 브랜치 생성 및 작업
git checkout -b feature/test-changelog
echo "# 체인지로그 테스트" >> TEST2.md
git add TEST2.md
git commit -m "feat: 체인지로그 테스트 기능"
git push origin feature/test-changelog
# GitHub에서 deploy 브랜치로 PR 생성예상 결과:
- CodeRabbit AI 자동 리뷰
CHANGELOG.json,CHANGELOG.md자동 생성- PR 자동 머지 (리뷰 통과 시)
원인: deploy 브랜치에 워크플로우 파일이 없을 수 있습니다.
해결:
git checkout deploy
ls .github/workflows/
# 파일이 없다면 main에서 복사
git checkout main
git checkout deploy
git merge main
git push origin deploy증상:
remote: Permission to ... denied to github-actions[bot]
해결:
- 토큰이 Classic 타입인지 확인 (Fine-grained 아님)
repo,workflow권한 모두 체크되었는지 확인- Organization 설정에서 PAT 정책 확인
- 토큰 만료 날짜 확인
해결: 수동 동기화 실행
# 현재 버전 상태 확인
.github/scripts/version_manager.sh get
# 모든 파일 동기화
.github/scripts/version_manager.sh sync
# 특정 버전으로 강제 설정
.github/scripts/version_manager.sh set 1.0.0확인 사항:
.coderabbit.yaml파일이 프로젝트 루트에 있는지 확인- CodeRabbit이 저장소에 액세스 권한이 있는지 확인
- PR에 충분한 변경사항이 있는지 확인 (1줄 이상)
답변: Nexus 워크플로우는 Spring 타입 선택 시 자동으로 복사됩니다:
PROJECT-SPRING-NEXUS-CI.ymlPROJECT-SPRING-NEXUS-PUBLISH.yml
추가 설정 필요:
- GitHub Secrets에 Nexus 인증 정보 등록:
NEXUS_USERNAMENEXUS_PASSWORDNEXUS_URL
gradle.properties또는build.gradle에 Nexus 저장소 설정
- CONTRIBUTING.md - 상세 기여 가이드 및 워크플로우 설명
- CHANGELOG.md - 전체 변경 이력
- README.md - 프로젝트 개요 및 빠른 시작
# 원격 스크립트로 타입 변경
bash <(curl -fsSL "https://raw.githubusercontent.com/Cassiiopeia/SUH-DEVOPS-TEMPLATE/main/template_integrator.sh")- 수동 워크플로우 실행: GitHub Actions 탭에서
workflow_dispatch트리거 활용 - 멀티 환경 배포:
version.yml에 환경별 설정 추가 - 커스텀 워크플로우:
.github/workflows/에 프로젝트별 워크플로우 추가 가능
🎉 축하합니다! 이제 완전 자동화된 DevOps 환경이 구축되었습니다.
추가 질문이나 문제가 있다면 이슈를 생성해 주세요.