CI/CD를 위한 GitHub Actions: 5분 안에 이해하기
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
- 초보 개발자 및 CI/CD에 대한 두려움이 있는 프로그래머
- 난이도 관점: 중간 수준의 이해가 필요하지만, 코드 중심 접근으로 쉽게 시작 가능
핵심 요약
- CI/CD는 이벤트 기반의 함수(Functions)로 구성된 워크플로우
- GitHub Actions에서 사전 정의된 액션(Actions)을 활용한 재사용 가능한 워크플로우 구조
- 예제:
npm init
,actions/checkout@v3
,actions/setup-node@v3
등을 기반으로 한 Node.js 프로젝트 CI 설정
섹션별 세부 요약
1. CI/CD의 개념 재정의
- CI/CD는 단순한 함수(Functions)의 조합
- "이벤트(Event)"가 트리거로 작동하는 "스텝(Step)" 단위로 구성
- 예시:
downloadNodejs()
,checkOutTheRepo()
등이 각각의 스텝
2. 워크플로우(Worflow) 구조
- 워크플로우는 여러 스텝을 포함하는 고차함수(Higher-order Function)
- 이벤트 발생 시 자동 실행 (예:
push
,pull request
) - 예시:
event.emit("myevent")
로 워크플로우 실행
3. GitHub Actions 기반 CI 설정 예제
- npm 프로젝트 생성 및 테스트 설정
- npm init -y
, npm i -D mocha
- main.js
및 test/app.js
파일 구조 정의
- GitHub Actions 워크플로우 파일 구성
- .github/workflows/ci_add.yml
파일 생성
- actions/checkout@v3
, actions/setup-node@v3
등 사전 정의 액션 활용
- 워크플로우 실행 조건 정의
- on: push
이벤트로 트리거
- runs-on: ubuntu-latest
환경 설정
4. CD(Continuous Deployment)의 확장성
- CI와 CD는 유사한 원리 적용
- npm 배포, GitHub Pages 배포, Google Play 등에도 API 활용 가능
- "이벤트 기반의 함수" 개념 유지
결론
- CI/CD는 코드로 작성한 이벤트 기반의 함수로, GitHub Actions의 사전 정의 액션을 활용하면 간단히 구현 가능
- 실무 적용 팁:
actions/checkout@v3
및actions/setup-node@v3
액션을 재사용하여 워크플로우 효율성 확보 - 핵심 메시지: CI/CD는 "코드"로 접근하면 복잡한 DevOps 용어가 간단해지는 도구임