on:
push:
branches: [main] # main 브랜치로의 푸시 이벤트를 구독합니다.
pull_request:
branches: [main] # main 브랜치로의 풀 리퀘스트 이벤트를 구독합니다.
needs: {job 명} 키워드로 작업 간에 의존관계를 설정하여 여러 작업이 순차적으로 실행될 수 있음runs-on 속성을 사용해서 리눅스나 윈도우즈와 같은 실행 환경을 지정jobs:
build: # job1
runs-on: ubuntu-latest
steps:
...(생략)...
test: # job2
runs-on: ubuntu-latest
steps:
...(생략)...
uses : 실행할 액션을 지정. github에서 제공하는 액션 또는 커스텀 액션run : 실행할 명령 또는 스크립트를 지정. steps:
- name: Checkout Repository # 저장소 체크아웃 단계
uses: actions/checkout@v2 # github의 마지막 커밋으로 checkout 한다.
- name: Set up Node.js # Node.js 환경 설정 단계 (필요에 따라 변경 가능)
uses: actions/setup-node@v2 # node.js를 설치한다.
with:
node-version: '14' # Node.js 버전 선택
- name: Install Dependencies # 프로젝트 종속성 설치 단계
run: npm install # 또는 yarn install
- name: Build # 프로젝트 빌드 단계 (필요에 따라 변경 가능)
run: npm run build # 또는 yarn build
- name: Run Tests # 테스트 실행 단계 (필요에 따라 변경 가능)
run: npm test # 또는 yarn test
- name: Deploy to Production # 프로덕션 배포 단계 (필요에 따라 변경 가능)
if: success() # 성공한 경우에만 실행
run: |
# 배포 스크립트 작성
# 예: 서버에 코드 복사, 컨테이너 이미지 빌드 및 업데이트 등
이
name: CI/CD Example Workflow
on:
push:
branches:
- main # 원하는 브랜치에 코드가 푸시될 때 트리거
jobs:
build:
runs-on: ubuntu-latest # 실행 환경 지정 (Ubuntu 최신 버전)
steps:
- name: Checkout Repository # 저장소 체크아웃 단계
uses: actions/checkout@v2
- name: Set up Node.js # Node.js 환경 설정 단계 (필요에 따라 변경 가능)
uses: actions/setup-node@v2
with:
node-version: '14' # Node.js 버전 선택
- name: Install Dependencies # 프로젝트 종속성 설치 단계
run: npm install # 또는 yarn install
- name: Build # 프로젝트 빌드 단계 (필요에 따라 변경 가능)
run: npm run build # 또는 yarn build
- name: Run Tests # 테스트 실행 단계 (필요에 따라 변경 가능)
run: npm test # 또는 yarn test
- name: Deploy to Production # 프로덕션 배포 단계 (필요에 따라 변경 가능)
if: success() # 성공한 경우에만 실행
run: |
# 배포 스크립트 작성
# 예: 서버에 코드 복사, 컨테이너 이미지 빌드 및 업데이트 등
References: