리꾸므

22번째 발자국_GitHub Actions 본문

발걸음/일지

22번째 발자국_GitHub Actions

리꾸므 2022. 8. 31. 22:55

Github Actions란?

 소프트웨어 개발 라이프 사이클안에서 Pull Request, Push등의 이벤트 발생에 따라 자동화된 작업을 진행할 수 있게 해주는 기능이다. 

 

자동화 작업이 필요한 경우

  1. CI/CD
    • Github Actions을 활용하는 가장 대표적인 예시 중 하나
    • 로컬 레포지토리에서 원격 레포지토리로 푸쉬 후 이벤트 발생에 따라 자동으로 빌드 및 배포하는 스크립트 실행
    • 애플리케이션 규모가 클수록 빌드, 배포 시간이 오래걸리는데 이를 자동화하면 시간낭비 방지
  2. Testing
    • 팀프로젝트시 Pull Request를 보내면 자동으로 테스트 진행하는 것 또한 Github Actions로 구현
    • 테스트 성공여부에 따라 자동으로 PR을 Open 및 Close 할 수 있다.
  3. Cron Job
    • Github Actions을 통해 특정 시간대 스크립트를 반복 실행하도록 구현 가능

 

구성 요소

  1. Workflow
    • 레포지토리에 추가할 수 있는 일련의 자동화된 커맨드 집합
    • 하나 이상의 Job으로 구성, Push, PR과 같은 이벤트에 의행 실행될 수있고, 특정 시간대 실행될 수도 있다.
    • 빌드,테스트,배포 등 각각 역할에 맞게 추가할 수있고, .github/workflows 디렉토리에 YAML형태로 저장
  2. Event
    • Workflow를 실행시키는 Push, Pull Request, Commit 등의 특정 행동을 의미한다.
    • 위 특정행동이 아닌, Repository Dispatch Webhook을 사용하면 외부 발생이벤트에 의해서도 Workflow실행 가능하다.
  3. Job
    • 동일한 Runner에서 실행되는 여러 Step의 집합을 의미한다.
    • 기본적으로 하나의 Workflow 내의 여러 Job은 독립실행되지만, 필요에 따라 의존관계 설정하여 순서를 지정할 수 있다.
  4. Step
    • 커맨드를 실행할 수 있는 각각의 Task를 의미하는데, Shell 커맨드가 되룻도 있고 하나의 Action이 될 수도 있다.
    • 하나의 Job 내에서 각각의 Step은 다양한 Task로 인해 생성된 데이터를 공유할 수 있다.
  5. Action
    • Job을 만들기 위해 Step을 결합한 독립 커맨드로, 재사용이 가능한 Workflow가장 작은 단위블럭이다.
    • 직접만든 Action을 사용하거나 Github Community에 의해 생성된 것을 불러와 사용할 수 있다.
  6. Runner
    • Github Actions Workflow 내에 있는 Job을 실행시키기 위한 어플리케이션이다.
    • Github에서 호스팅하는 가상 환경 또는 직접 호스팅하는 가상 환경에서 실행 가능하다
    • Github 호스팅 가상 인스턴스의 경우 메모리 및 용량 제한이 존재한다.

 

 

참고

https://ji5485.github.io/post/2021-06-06/build-ci-cd-pipeline-using-github-actions/

'발걸음 > 일지' 카테고리의 다른 글

23번째 발자국_깃액션이 아직도안되어야~(feat.리액트 협동)  (0) 2022.09.06
5주차_회고  (0) 2022.09.04
21번째 발자국_Scheduler  (0) 2022.08.29
4주차_회고  (0) 2022.08.28
16번째 발자국_쿠키와 세션  (0) 2022.08.22