상세 컨텐츠

본문 제목

Github Action (깃 헙 액션)이란?

IT에 대해

by choiDev 2024. 3. 24. 20:04

본문

Github Action이란?

빌드, 테스트 및 배포 파이프라인을 자동화 하는 CI/CD 플랫폼이며, 

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

Github Actions는 DevOps 이상의 기능을 제공하는데 

예시로 누군가 리포지토리에 새 이슈를 생성할 때마다 워크플로를 실행하여 적절한 레이블을 자동으로 추가하는 행위도 가능합니다.

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

 

 

 

GitHub Action의 구성요소

풀리퀘스트 요청이 있거나 이슈가 생성되는 등 리포지토리에서 이벤트가 발생할 때 트리거 되도록 Github Actions 워크 플로를 구성할 수 있습니다. 워크 플로 에는 순차적 또는 병렬로 실행될 수 있는 작업이 하나 이상 포함되어있습니다.

 

1. WorkFlow

워크플로우는 하나 이상의 작업을 실행하는 자동화 프로세스입니다.

워크플로는 저장소에 체크인된 yaml 파일에 의해 정의되며 저장소의 이벤트에 의해 트리거될 때 실행되거나 수동으로 또는 정의된 일정에 따라 트리거될 수 있습니다.

워크플로는 리포지토리 디렉터리 (.github/workflows)에 정의 되며 저장소에는 각각 서로 다른 작업 집합을 수행할 수 있는 워크 플로가 있을수 있습니다. 

 

2. Event

이벤트는 워크플로 실행을 트리거하는 저장소의 특정 활동입니다.

예시로 기본적으로 (풀리퀘스트생성, 이슈 생성, 커밋 푸시) 등이 있으며 (웹훅 이벤트)로도 트리거 가능합니다.

 

3. Jobs

워크플로의 일련의 단계입니다. job은 쉘스크립트로 구성되어있으며 단계는 순서대로 실행되며 서로 종속됩니다.

예시로 애플리케이션을 빌드하는 단계와 빌드된 애플리케이션을 테스트하는 단계 이런식의 순서대로 실행을 구성가능합니다.

그리고 다른 job하고 종속성을 구성할 수 있습니다 

기본적으로 job은 종속성이 없으며 서로 병렬로 실행되지만 job이 다른 job에 종속되면 종속 job이 완료될때까지 기다렸다가 실행합니다. 

예시로 빌드 job 안에 배포 job을 종속시키면 빌드 > 배포 이런 순서대로 실행합니다.

 

4. Actions

자주 반복되는 Job들을 모아둔 덩어리로 반복적인 코드양을 줄입니다.

 

5. Runner

러너는 워크플로가 트리거될 때 워크플로를 실행하는 서버입니다.

각 실행자는 한번에 한 Job을 실행할 수 있습니다. GitHub은 워크플로를 실행하기 위한 Linux, Window, MacOs 실행기를 제공하며 각 워크플로 실행은 새로운 가상 머신에서 실행됩니다.

 

 

Github Action 예시코드

name: Simple Workflow  # 작업의 이름

on: [push] # 코드 푸시 이벤트에 반응

jobs: # Job 덩어리 정의
  build: # 작업의 이름
    runs-on: ubuntu-latest # Ubuntu 환경에서 실행

    steps: # 작업의 단계로 순차적으로 ㅣㄹ행됩니다.
    - name: Check out repository
      uses: actions/checkout@v2 # 저장소 체크아웃

    - name: Print current directory
      run: pwd # 현재 디렉토리 출력

    - name: List files
      run: ls # 파일 목록 출력

    - name: Print Hello, World!
      run: echo "Hello, World!" # "Hello, World!" 출력

 

관련글 더보기