본문 바로가기

DevOps/Github Actions

깃헙 액션(Github Actions) 사용하기 (1/2)

목차

1. 깃헙 액션이란?

2. 깃헙 액션의 구성요소

3. 깃헙 액션 만들기 

4. 깃헙 액션 이벤트

5. 깃헙 액션 표현식

6. 깃허브 액션 템플릿

7. 깃헙 액션 스케줄

8. 컨텍스트

1. 깃헙 액션이란?

GitHub Actions는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 지속적 통합 및 지속적 배포(CI/CD) 플랫폼입니다. 리포지토리에 대한 모든 Pull Request가 발생할 때마다 빌드 및 테스트하는 워크플로를 생성하거나, 병합된 Pull Request들을 프로덕션에 배포할 수 있습니다.

GitHub는 Linux, Windows 및 macOS 가상 머신을 제공하여 워크플로를 실행하거나 자체 데이터 센터 또는 클라우드 인프라에서 자체 호스팅 러너를 호스팅 할 수 있습니다.

2. 깃헙 액션의 구성요소

pull request가 열리거나 issue가 생성되는 등 리포지토리에서 event가 발생할 때 트리거되도록 GitHub Actions 워크플로를 구성할 수 있습니다.

워크플로우에는 순차적으로 또는 병렬로 실행할 수 있는 하나 이상의 job이 포함되어 있습니다

각 job은 자체 가상 머신 실행기 또는 컨테이너 내부에서 실행되며, 사용자가 스크립트로 정의한 하나 이상의 step이 있습니다.

 

Workflows

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

워크플로는 리포지토리에 체크인한 YAML 파일에 의해 정의되며, 리포지토리의 이벤트에 의해 트리거 될 때 실행되거나 수동으로 또는 정의된 스케쥴 따라 트리거될 수 있습니다

워크플로는 리포지토리의 .github/workflows 디렉터리에 정의되며, 리포지토리에는 각각 다른 작업 집합을 수행할 수 있는 여러 워크플로가 있을 수 있습니다. (dev workflow, prod workplow)

 

Events

이벤트는 워크플로 실행을 트리거하는 리포지토리의 특정 활동입니다. 예를 들어 누군가 Pull Request를 생성하거나 이슈를 열거나 리포지토리에 커밋을 푸시할 때, 스케줄, rest API Call, 수동 등 이벤트로 action이 GitHub에서 시작될 수 있습니다.

 

Jobs

워크플로의 기본 작업 단위입니다.

같은 워크플로우의 step 모음입니다.

Job은 기본적으로 의존성이 없음, 각각이 병렬 실행됩니다.

Job과 Job의 의존성을 설정 가능합니다.

Job이 다른 Job에 의존성이 있는 경우 해당 Job을 기다립니다.

 

Steps

Job 안에서 실행되는 액션들의 모음입니다.

각 스텝은 쉘 스크립트나 액션을 동작합니다.

스텝은 순서에 따라 진행합니다.

같은 Runner에서의 스텝끼리는 데이터 공유합니다

 

actions

action은 복잡하지만 자주 반복되는 작업을 수행하는 GitHub Actions 플랫폼용 사용자 지정 애플리케이션입니다.

action을 사용하여 워크플로 파일에 작성하는 반복 코드의 양을 줄이는 데 도움이 됩니다.

가장 작은 단일 명령이고 직접 만들거나 만들어진 것을 가져와 쓸 수 있습니다.

 

Runners

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

각 러너는 한 번에 하나의 작업을 실행할 수 있습니다.

GitHub는 Ubuntu Linux, Microsoft Windows 및 macOS 실행기를 제공하여 워크플로를 실행합니다.

각 워크플로 실행은 새로 프로비저닝 된 새로운 가상 머신에서 실행됩니다.

3. 깃헙 액션 만들기

  • 깃허브 원격 저장소에서 만들기 actions 탭에서 - “New workflow” 클릭

  • 깃 로컬 저장소에서 만들기
    • 프로젝트 > .github > workflows > [워크플로].yml 파일 생성

4. 깃헙 액션 이벤트

  • 워크플로를 실행하게 하는 이벤트
  • 이벤트를 사용하여 워크플로 트리거
  • on
    • on: push 단일 이벤트
    • on: [push, fork] 여러 이벤트
  • 자주 사용하는 이벤트
    • pull_request, push, schedule, workflow_dispatch

5. 깃헙 액션 표현식

${{ 표현식 }}

  • 워크플로 파일 안에서 식 사용 가능
  • 환경 변수 활용
  • 프로그래밍 방식으로 설정
  • 컨텍스트 접근
  • 연산자 사용 가능

6. 깃허브 액션 템플릿

  • 빌드, 테스트 관련 템플릿
  • 배포 관련 템플릿
  • 자동화 관련 템플릿
  • CI 관련 템플릿
  • 정적 페이지 배포 템플릿

7. 깃헙 액션 스케줄

  • 시간 예약하고 예약된 시간에 이벤트가 발생
  • POSIX cron 문법을 따른다.

8. 컨텍스트

컨텍스트는 워크플로 실행, 변수, 실행기 환경, 작업 및 단계에 대한 정보에 액세스하는 방법입니다.

각 컨텍스트는 문자열 또는 다른 개체일 수 있는 속성을 포함하는 개체입니다.
컨텍스트, 개체 및 속성은 워크플로 실행 조건마다 크게 달라집니다.

컨텍스트 값 사용 문법 ${{ <context>}}

 

secrets 컨텍스트

  • 깃허브 프로젝트 >> settings >> security >> secrets & variables
  • 민감 정보 깃허브 시크릿 설정
  • 비밀번호
  • API 토큰
  • 인증서

'DevOps > Github Actions' 카테고리의 다른 글

깃헙 액션(Github Actions) 사용하기 (2/2)  (0) 2023.06.01