이전 글을 통해 CI/CD란 무엇인지를 알아보았습니다. (아래 글 참고) 이번에는 CI/CD를 가능하게 하는 도구 중 하나인 GitHub Actions에 대해 알아보도록 하겠습니다.
https://yujinius45.tistory.com/72
[CI/CD] 개발 프로세스에 쓰이는 CI/CD란 무엇인가?
현대 소프트웨어 개발에서 CI/CD(Continuous Integration/Continuous Deployment or Delivery)는 필수적인 요소로 자리잡았습니다. 이 글에서는 CI/CD가 무엇인지, 왜 중요한지, 그리고 이를 통해 어떻게 효율적이고
yujinius45.tistory.com
GitHub Actions은 CI/CD를 위한 강력한 도구!!
GitHub Actions는 GitHub에서 제공하는 CI/CD 플랫폼으로, 소프트웨어 개발 워크플로우를 자동화할 수 있습니다. GitHub Actions는 YAML 파일을 사용하여 다양한 이벤트에 대한 반응을 정의하고, 이를 통해 빌드, 테스트, 배포 등을 자동화할 수 있습니다.
GitHub Actions의 구성 요소

- 워크플로우(Workflow):
- 워크플로우는 특정 이벤트에 의해 트리거되는 자동화된 프로세스입니다.
- 역할: 빌드, 테스트, 배포 등의 작업을 자동으로 실행합니다.
- 구성: .github/workflows 디렉터리에 YAML 형식으로 저장됩니다.
- 이벤트(Event):
- 워크플로우를 트리거하는 GitHub 상의 특정 활동입니다.
- 역할: 코드 푸시, 풀 리퀘스트 생성, 릴리즈 등 다양한 이벤트가 워크플로우 실행을 유발합니다.
- 예시: push, pull_request, release, schedule 등.
- 잡(Job):
- 워크플로우 내에서 실행되는 개별 작업 단위입니다.
- 역할: 서로 다른 환경에서 병렬로 실행될 수 있는 작업 단위를 제공합니다.
- 구성: 각 잡은 하나 이상의 스텝으로 구성됩니다.
- 스텝(Step):
- 잡 내에서 실행되는 개별 명령어 또는 액션입니다.
- 역할: 실제 작업을 수행하며, 스크립트나 실행 파일을 실행합니다.
- 구성: 특정 작업을 실행하는 명령어 또는 액션으로 구성됩니다.
- 액션(Action):
- 재사용 가능한 독립 실행형 커맨드입니다.
- 역할: 특정 기능을 수행하는 스크립트나 컨테이너 애플리케이션으로, 커뮤니티 또는 사용자 정의 액션을 사용할 수 있습니다.
- 예시: actions/checkout, actions/setup-node 등
- 러너(Runner):
- 워크플로우를 실행하는 서버입니다.
- 구성: GitHub 제공 러너 또는 자체 호스팅 러너를 사용할 수 있습니다.
- 역할: 각 잡을 개별적으로 실행하며, 병렬 실행이 가능합니다.
GitHub Actions의 주요 프로세스
- 워크플로우 파일 작성:
- .github/workflows 디렉터리에 YAML 파일을 작성하여 워크플로우를 정의합니다.
- 예시 :
name: CI on: [push] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Node.js uses: actions/setup-node@v2 with: node-version: '14' - run: npm install - run: npm test
- 이벤트 발생:
- 정의된 이벤트(예: 코드 푸시)가 발생하면 해당 워크플로우가 트리거됩니다.
- 잡 실행:
- 워크플로우 파일에 정의된 각 잡이 병렬 또는 순차적으로 실행됩니다.
- 각 잡은 정의된 환경에서 실행됩니다(예: ubuntu-latest).
- 스텝 실행:
- 각 잡 내에서 스텝이 순차적으로 실행됩니다.
- 스텝은 명령어 또는 액션을 실행합니다.
- 결과 보고:
- 각 잡과 스텝의 실행 결과가 GitHub의 워크플로우 페이지에 표시됩니다.
- 성공 또는 실패 여부, 로그 등이 제공되어 문제를 디버깅할 수 있습니다.
GitHub Actions의 주요 기능
- 멀티 플랫폼 지원: 다양한 OS(Windows, macOS, Linux)에서 워크플로우를 실행할 수 있습니다.
- 커뮤니티 액션: GitHub Marketplace에서 다양한 액션을 찾아 사용하거나 커스터마이징할 수 있습니다.
- 시크릿 관리: 보안이 필요한 정보(API 키 등)를 안전하게 관리할 수 있습니다.
- 매트릭스 빌드: 다양한 환경 변수 조합으로 병렬 실행하여 테스트 커버리지를 높일 수 있습니다.
- 캐싱: 의존성 설치 시간을 줄이기 위해 캐싱 기능을 제공하여 빌드 시간을 최적화할 수 있습니다.
GitHub Actions의 장점
- 통합성: GitHub 저장소와 밀접하게 통합되어 코드 변경 사항에 즉시 반응할 수 있습니다.
- 사용 용이성: YAML 파일을 사용하여 직관적이고 쉽게 워크플로우를 정의할 수 있습니다.
- 확장성: 다양한 서드파티 액션과 통합하여 워크플로우를 확장할 수 있습니다.
- 유연성: 다양한 이벤트 트리거와 조건을 사용하여 복잡한 워크플로우를 구성할 수 있습니다.
마무리
GitHub Actions는 소프트웨어 개발 워크플로우를 자동화하고, CI/CD 파이프라인을 효율적으로 관리할 수 있는 강력한 도구입니다. 이를 통해 개발자는 코드 변경 사항을 신속하고 안전하게 배포할 수 있으며, 개발 및 운영의 효율성을 크게 향상시킬 수 있습니다. 적절한 워크플로우 설계와 도구 활용을 통해 GitHub Actions를 최대한 활용해보세요! 다음에는 GitHub Actions를 실습해보는 포스팅으로 돌아오겠습니다!
'IT' 카테고리의 다른 글
| [Anaconda/Windows] 아나콘다 용량 정리하기 (0) | 2024.07.16 |
|---|---|
| [Anaconda/Windows] 아나콘다에서 가상 환경 삭제하기 (0) | 2024.07.16 |
| [CI/CD] 개발 프로세스에 쓰이는 CI/CD란 무엇인가? (0) | 2024.05.30 |
| [Git] Git download 깃 설치하기 (1) | 2024.04.06 |
| [컴파일] 인터프리트, 정적, 동적, JIT 컴파일 방식 차이 (3) | 2024.04.04 |