기타

github action 기본개념

content0474 2024. 12. 9. 10:23

1. GitHub Actions

  • GitHub Actions는 소프트웨어 개발 작업을 자동화할 수 있는 CI/CD(Continuous Integration/Continuous Deployment) 플랫폼
  • 코드 작성, 테스트, 빌드, 배포 등을 자동으로 실행 가능
  • GitHub 저장소와 통합되어 워크플로(Workflow)를 정의하고 실행

GitHub Actions의 주요 개념

  • Workflow: 자동화된 작업의 모음. .github/workflows 디렉토리에 YAML 파일로 정의
  • Event: 워크플로를 트리거하는 조건. 예: push, pull_request, schedule 등
  • Job: 워크플로 내에서 실행되는 개별 작업 단위. Runner 환경에서 실행
  • Step: Job 안에서 실행되는 명령어 또는 스크립트
  • Runner: 워크플로를 실행하는 환경으로 GitHub에서 호스팅하거나 사용자 호스팅 가능

 

2. YAML 파일

  • YAML은 사람이 읽기 쉬운 데이터 직렬화 형식
  • 설정 파일이나 데이터를 저장할 때 주로 사용하며, GitHub Actions의 워크플로 파일도 YAML 형식으로 작성
  • .yml 또는 .yaml 확장자를 사용

YAML 문법

  • 키-값 쌍: 데이터를 키와 값으로 저장
name: Example Workflow
version: 1.0

 

  • 리스트: 여러 값을 가진 목록
languages:
  - JavaScript
  - Python
  - Go

 

  • 중첩 데이터: 들여쓰기로 계층 구조 표현
database:
  host: localhost
  port: 3306
  username: user
  password: pass

 

3. run

  • GitHub Actions에서 커맨드라인 명령어를 실행하기 위한 키워드
  • run 단계에서 작성된 명령어는 지정된 환경에서 실행
  • 실행 환경은 runs-on에 설정된 값(예: ubuntu-latest)에 따라 달라짐

run의 사용 예

단일 명령어 실행

- run: echo "Hello, World!"

 

여러 명령어 실행

- run: |
    echo "Listing files:"
    ls
 
환경 변수 출력
- run: echo "Current branch: ${{ github.ref }}"

 

 

4. echo

  • echo는 문자열이나 변수 값을 출력하는 명령어
  • 로그 메시지 출력, 디버깅, 변수 값을 확인하거나 파일에 저장할 때 사용

echo의 사용 방법

  • 문자열 출력
echo "Hello, World!"
  • 변수 출력
NAME="GitHub"
echo "Welcome to $NAME"
  • GitHub Actions에서 사용
- run: echo "Repository: ${{ github.repository }}"
  • 환경 변수 설정
- run: echo "MY_VARIABLE=123" >> $GITHUB_ENV

5. GitHub Actions의 YAML 파일 예시

name: GitHub Actions Demo
on: [push]

jobs:
  Example-Job:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - run: echo "This workflow runs on: ${{ runner.os }}"

      - name: List repository files
        run: |
          echo "Listing files in the repository:"
          ls
  • push 이벤트 발생 시 실행
  • Ubuntu 환경에서 실행
  • 저장소를 체크아웃하고 현재 파일을 나열

 

주요 기능 정리

  • GitHub Actions는 코드 변경 시 자동화된 작업을 실행해 효율성을 높임
  • YAML 파일은 GitHub Actions의 워크플로를 정의하는 데 사용
  • run 키워드를 활용해 명령어를 실행하며, echo로 디버깅 및 상태를 확인 가능