Github Actions

leejm·2023년 5월 31일
0

평소 CI / CD 에 관심을 가지고 있다가 잠시 여유가 생겨 Github Actions를 사용해볼 계획을 세웠습니다.

목차

  • CI / CD의 개념
  • Github Actions의 기본 개념

CI / CD

CI (Continuous Integration)

CI란, 지속적 통합 을 의미합니다. 제대로 구현된다면, 정기적으로 코드의 변경사항이 빌드 및 테스트를 거쳐 공유 레포지토리에 병합됩니다. 여러 개발자가 동시에 작업을 할 경우, 충돌하는 문제를 해결할 수 있을 겁니다.

쉽게 생각하면, 빌드 / 테스트 과정을 자동화해주는 의미로 정리할 수 있습니다.

CD (Continous Delivery / Deployment)

CD는 지속적 서비스 제공 / 배포 두 가지의 의미를 담고 있습니다.

이는 개발자들이 작성한 코드의 변경사항이 레포지토리에 자동으로 업로드되는 것을 의미합니다. 이를 실시간 프로덕션 환경으로 배포할 수 있을 겁니다.
쉽게 생각했을 때, 배포 자동화 과정이라는 말로 요약할 수 있을 것 같습니다.

Tools

CI / CD 를 쉽게 도와주는 도구는 많습니다.
그 중 몇 가지 대중적인 것을 나열해보자면

  • Jenkins
  • Github Actions
  • Circle CI
  • Travis CI
    등이 있습니다.

그 중, 최근 가장 인기 있는 것은 Github Actions를 꼽을 수 있습니다.
그 이유를 생각해보자면,

  • Jenkins에 비해 설정이 간편하고
  • Github에서 바로 모니터링이 용이하고
  • 공개된 레포지토리의 경우 무료로 사용할 수 있다는 점

정도로 보여집니다.
저도 이런 장점들 덕에, Github Actions를 CI 환경을 먼저 구성해보기로 하였습니다.

Github Actions

주요 개념

  • Events
    Github에서 어떤 일이 발생했는지 그 유형을 말합니다.
    ex) push, merge
  • Workflows
    특정 이벤트가 발생했을 때, 어떤 일을 수행해야 하는지 명시하는 영역이 Workflow입니다.
    push 했을 경우 build를 하거나, test code를 이용해 test를 수행하는 등의 일을 지정하는 영역이 바로 이 Workflow 라고 할 수 있습니다.
  • Jobs
    실행해야 하는 일의 단위를 의미합니다. 여러 Job이 있을 때, 병렬적으로 실행이 됩니다. 하지만, 순차적으로 진행하도록 만들수도 있습니다.
  • Actions
    Job에서 실행할 행동들을 미리 정의해둔 라이브러리 같은 개념입니다. 원하는 기능을 원하는 Job에 배치해 사용할 수 있습니다.
  • Runners
    앞에 정의한 Workflow에 맞춰 실행되는 환경을 의미합니다. VM 처럼 가상으로 실행될 수 있는 환경을 Github 측에서 제공해줍니다. 하지만, 보안 등의 이유로 외부 유출이 불가능하다면 Self-hosted Runner를 이용해, 내 로컬환경이나 EC2 등에서 사용할 수도 있습니다!
profile
Python Based Backend Engineer입니다. DevOps와 효율적으로 일하는 것에 관심이 있습니다.

0개의 댓글