본문 바로가기

# Development/DevOps

[CI/CD] GitHub Actions란?

Github Actions란?

Github Actions는 소프트웨어 개발과 배포를 자동화하는 통합 서비스이다. 소프트웨어 개발 라이프사이클 안에서 Pull Request, Push 등의 이벤트 발생에 따라 자동화된 작업을 진행할 수 있도록 도와준다.

 

Github Actions 외에도 다양한 CI/CD 도구들이 존재하는데 그에 대한 간략한 설명은 아래의 포스트에서 확인 할 수 있다.

 

[CI/CD] CI/CD란 무엇인가?

CI/CD란 무엇인가? 소프트웨어 개발 및 배포를 자동화하여 효율적으로 개발 및 배포 프로세스를 관리하는 방법론이다. CI (Continuous Integration) Continuous Integration: 지속적 통합 CI는 개발자들이 코드를

yoon001.tistory.com

 

Github Actions과 다른 CI/CD 도구를 비교했을 때의 장점

 

강력한 통합

Github Actions는 Github와 강력하게 통합되어 있어, 저장소와의 연동이 간편하다.

 

호스팅 환경

Github Actions는 호스팅된 환경을 제공하여 별도의 인프라 구축이 필요 없다.

 

다양한 액션(Action) 라이브러리

Github Actions는 다양한 액션 라이브러리를 포함하고 있어, 다른 개발자들이 작성한 액션들을 쉽게 활용할 수 있다.

 

시크릿 관리

Github Actions는 시크릿을 통해 보안적으로 중요한 정보들을 안전하게 저장하고 사용할 수 있다.

 

비용 효율성

Github Actions는 저장소와 통합되어 있고 호스팅된 환경을 제공하기 때문에 별도의 비용이 들지 않는다.

 

 

Github Actions의 구성 요소

다음은 Github Actions을 활용하기 위해 알아야 할 구성 요소이다. 

 

워크플로우 (Workflow)

워크플로우는 빌드, 테스트, 배포 등의 작업을 단계별로 정의하는 YAML 파일이다.

  • Github Actions에서 가장 중요한 구성 요소다. 
  • github/workflows 디렉토리에 워크플로우 파일을 작성하여 Github Actions 파이프라인을 생성한다.
  • 워크플로우 파일은 이벤트 트리거와 작업 단계를 설정하는데 사용된다.


이벤트 (Event)

이벤트는 워크플로우가 실행되도록 트리거하는 요소이다.

  • 예를 들어, 코드 푸시, 풀 리퀘스트 생성, 이슈 등의 이벤트에 의해 워크플로우가 실행된다.
  • 각 이벤트에는 해당 이벤트가 발생했을 때 실행할 작업들을 정의할 수 있다.


작업 (Job)

작업은 워크플로우에서 수행할 개별적인 작업 단위이다.

  • 한 개 이상의 작업을 정의하여 원하는 작업을 순차적 또는 병렬로 실행할 수 있다.
  • 각 작업은 실행 환경과 필요한 스크립트를 정의한다.


실행 환경 (Runner)

실행 환경은 워크플로우가 실행되는 가상 환경이다.

  • Github Actions에서는 기본적으로 호스트된 실행 환경을 제공하지만, 사용자 지정 실행 환경도 사용할 수 있다.
  • 각 작업은 특정 실행 환경에서 실행되며, 미리 정의된 또는 사용자 지정 실행 환경을 선택할 수 있다.


액션 (Action)

액션은 작업(Job) 내에서 수행되는 실제 동작을 정의한 것으로, 재사용 가능한 코드 조각이다.

  • Github Actions에서는 다양한 액션들을 제공하며, 커뮤니티나 사용자가 직접 액션을 작성하여 활용할 수 있다.
  • 액션은 코드 빌드, 테스트, 릴리즈 등 다양한 작업들을 지원한다.


시크릿 (Secret)

시크릿은 보안적으로 중요한 정보를 저장하는데 사용되는 값이다.

  • Github Actions에서 시크릿은 암호화되어 저장되며, 워크플로우에서 사용될 때에만 복호화된다.
  • 보안 토큰, API 키, 비밀번호 등을 시크릿으로 저장하여 보안을 강화할 수 있다.

 

마무리

Github Actions의 이러한 구성 요소들을 조합면, CI/CD 파이프라인을 자유롭게 구성할 수 있다.

다음 글에서는 Github Actions를 사요해, CI 프로세스 중 Lint를 적용하는 방법에 대해 정리해보려 한다.

 

[CI/CD] Github Actions를 활용한 Python CI 구축하기: Part1-Linting

Github Actions를 활용한 Python CI 구축하기: Part1-Linting 본 글을 읽기전에 CI/CD와 Github Actions에 대한 개념이 확실하지 않다면, 아래의 링크들을 읽어보길 바란다. CI/CD [CI/CD] CI/CD란 무엇인가? CI/CD란 무

yoon001.tistory.com