728x90
1.Github Actions
GitHub에서 제공하는 CI/CD 자동화 도구
이를 사용하면 코드 변경 사항을 자동으로 빌드, 테스트 및 배포할 수 있다.
2.CI/CD
2-1.CI (Continuous Integration, 지속적 통합)
코드 변경 사항을 정기적으로 통합하고 자동으로 테스트하는 프로세스
코드가 변경될 때마다 자동으로 빌드 및 테스트를 하고, 수행 코드 품질 유지 및 버그 조기 발견하기 위해 존재한다.
2-2. CD (Continuous Deployment 지속적 배포)
CI 이후 빌드된 코드를 자동으로 배포(Deployment)하거나, 운영 환경에 배포 가능한 상태로 유지(Delivery)하는 과정
3. GitHub Actions Workflow 작성법
기본 적으로 레포지토리의 루트에서 .github/workflows 내부에 작성한다.
name: 워크플로우 이름
on:
이벤트: # 이벤트로 워크플로우를 트리거 (예: push, pull_request 등)
branches:
- main # 이벤트가 발생할 브랜치 설정
jobs: # 작업 정의
job_name: # 작업 이름
runs-on: ubuntu-latest # 사용할 실행 환경 (예: ubuntu, windows, macos 등)
steps: # 작업에 포함될 단계들
- name: 단계 이름
uses: actions/checkout@v3 # 예: 소스 코드 체크아웃
- name: 단계 이름
run: npm install # 예: 의존성 설치
- name: 단계 이름
run: npm test # 예: 테스트 실행
레포지토리의 Actions 에들어가면 New workflow로 쉽게 워크플로우를 작성할수있다.
4.WorkFlow 예시 (Docker)
Docker 이미지를 빌드하고, 해당 이미지를 실행하여 테스트하는 과정을 담은 워크플로우다.
push또는 pull_request를 받을때 실행된다.
name: Docker Image CI
# 워크플로우가 어떤 이벤트에서 실행될지 정의
on:
push:
branches: [ "main" ] # main 브랜치에 푸시될 때 실행
pull_request:
branches: [ "main" ] # main 브랜치로의 풀 리퀘스트가 생성될 때 실행
jobs:
build:
runs-on: ubuntu-latest # 실행 환경: 최신 Ubuntu
steps:
# 1. 코드 체크아웃: 리포지토리의 최신 코드를 가져옵니다.
- uses: actions/checkout@v4
# 2. Docker 이미지 빌드 및 실행
- name: Build and run Docker image
run: |
# 현재 시간을 Unix 타임스탬프 형식으로 태그로 사용
IMAGE_TAG=$(date +%s)
# Docker 이미지를 빌드 (태그: my-image-name:<현재 시간>)
docker build . --file Dockerfile --tag my-image-name:$IMAGE_TAG
# 빌드된 Docker 이미지에서 npm test 실행
# --rm 플래그로 컨테이너 실행 후 자동으로 제거
docker run --rm my-image-name:$IMAGE_TAG npm run test
728x90
'Development Tools > GIT,GITHUB' 카테고리의 다른 글
[Git] GitLab이란? (0) | 2025.02.09 |
---|---|
[GITHUB] Github License (0) | 2025.01.13 |
[Git] .gitignore 커밋시 파일 무시하기 (0) | 2024.07.27 |