99클럽 TIL

99클럽 코테 스터디 33일차 Version Control GitHub Actions

차가리 2024. 6. 24. 22:13
728x90
  • 배포
    • CI
      • GitHub Actions
      • Jenkins
    • CD
      • Argo CD
        • Container
        • Docker
        • k8s
      • 쿠버네티스

GitHub Actions Doc 여기 문서를 읽고 정리함.

란?

GitHub Actions 는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD 플랫폼.

리포지토리에 대한 모든 풀 요청을 빌드 및 테스트하거나 병합된 풀 요청을 프로덕션에 배포하는 워크플로를 생성할 수 있음.

GitHub Actions 는 DevOps 이상의 기능을 제공하며 저장소에서 다른 이벤트가 발생할 때 워크플로를 실행할 수 있게 해줌.

예를 들어 누군가 저장소에 새 이슈를 생성할 때마다 워크플로를 실행하여 적절한 레이블을 자동으로 추가할 수 있음.

GitHub는 워크플로를 실행하기 위한 Linux, Windows 및 macOS 가상 머신을 제공하며, 자체 데이터 센터 또는 클라우드 인프라에서 자체 호스팅 실행기를 호스팅할 수도 있음.

구성 요소

  • 워크플로우
    • 하나 이상의 작업을 실행하는 구성 가능한 자동화된 프로세스.
    • 저장소에 체크인된 YAML 파일에 의해 정의되며 저장소의 이벤트에 의해 트리거될 때 실행되거나 수동으로 또는 정의된 일정에 따라 트리거 될 수 있음.
    • 워크플로는 저장소의 디렉터리에 정의되며 .github/workflows, 저장소에는 각각 서로 다른 작업 집합을 수행할 수 있는 여러 워크플로가 있을 수 있음. 예를 들어 풀 요청을 빌드하고 테스트하는 워크플로, 릴리스가 생성될 때마다 애플리케이션을 배포하는 워크플로, 그리고 누군가가 새 이슈를 열 때마다 레이블을 추가하는 워크플로가 있을 수 있음.
  • 이벤트
    • 워크플로 실행을 트리거하는 저장소의 특정 활동.
      • ex) 누군가가 풀 요청을 생성하거나, 이슈를 열거나, 커밋을 저장소에 푸시할 때 활동이 GitHub 에서 시작 될 수 있음. REST API 에 게시 하거나 수동으로 일정에 따라 실행되도록 퉈크플로우를 트리거할 수도 있음.
  • Jobs
    • 작업은 동일한 실행기에서 실행되는 워크플로우의 일련의 Step임.
    • 각 Step는 실행될 쉘 스크립트이거나 실행될 action 임. Step는 순서대로 실행되며 서로 종속됨.
    • 각 Step은 동일한 실행기에서 실행되므로 한 단계에서 다른 단계데이터를 공유할 수 있음
  • Actions
    • Action 는 복잡하지만 자주 반복되는 Action을 수행하는 GitHub Actions 플랫폼용 사용자 지정 애플리케이션 임. Action 를 사용하면 워크플로 파일에 작성하는 반복적인 코드의 양을 줄이는데 도움이 됨.
    • 이것을 통해 GitHub 에서 Git Repository 를 가져오거나, 빌드 환경에 맞는 도구 체인을 설정하거나, 클라우드에 대한 인증을 설정할 수 있음.
  • Runners
    • 워크플로가 트리거 될 때 워크플로우를 실행하는 서버.
    • 각 러너는 한 번에 하나의 작업을 실행할 수 있음.
    • GitHub 은 워크플로우를 실행하기 위한 Ubuntu Linux, Microsoft Windows 및 macOS 를 제공함.
728x90