기타
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로 디버깅 및 상태를 확인 가능