개발/Git

[Git] GitHub Actions 사용 방법

알파카털파카 2023. 1. 10. 00:31
GitHub Actions 사용 방법

 

 

원티드 프리온보딩 인턴십 1-2주차 강의 내용을 복습할 겸 직접 깃허브 액션을 사용해 보았다.

깃허브 액션을 사용하면 깃허브 레파지토리에서 바로 소프트웨어 개발 워크플로우를 자동화 할 수 있다.

 

 


 

 

 

1. .github/workflows 폴더 생성

워크플로우를 짜기 위해서는 .github 폴더 안에 workflows 라는 폴더가 있어야 한다.

.github/workflows/ 폴더 안에 넣는 여러가지의 파일 하나 하나가 CI/CD 파이프라인이 되는 것이다.

 

 

2. CICD.yml 파일 생성

.github/workflows/ 안에 파일을 생성한다.

 

// 예시 파일

name: CI/CD

on:  // 언제 돌릴 것인지
  push:
    branches:
    - master  // master 브랜치에 푸시 되었을 때 실행 (PR 머지도 포함)
  workflow_dispatch:

jobs:
  deploy:
    runs-on: ubuntu-latest  // 어디서 실행할 것인지
    steps:
    - uses: actions/checkout@master
    - run: npm ci
    - run: npm run test
    - run: npm run build
    - name: deploy to s3
      uses: jakejarvis/s3-sync-action@master
      with:
        args: --delete
      env:
        AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        AWS_REGION: 'ap-northeast-2'
        SOURCE_DIR: 'build'

 

개발할 때는 짧은 단위로 나누어 진행하는 것이 좋다.

제대로 작동하는지 확인하기가 편리하기 때문이다.

CICD.yml 파일을 작성할 때도 아래 코드와 같이 테스트하면 좋다.

 

// 테스트

name: CI/CD

on:
  push:
    branches:
      - main  // 브랜치 이름을 확인하자

jobs:
  helloWorld:
    runs-on: ubuntu-latest
    steps:
      - run: echo HelloWorld

 

 

3. 파일 커밋

커밋 메시지는 'github actions run 테스트' 라고 적었다.

깃허브 레파지토리에서 Actions 탭을 보면 방금 커밋이 돌아가고 있음을 볼 수 있다.

 

Actions 탭

 

상세 보기 페이지에서 상태와 시간 등의 정보 확인

 

Jobs를 클릭하면 이런 세부 사항을 볼 수 있다.

 

Set up job 에서 러너를 켜주고 여러가지 설정을 해준다.

Run echo HelloWorld 가 실행되었다.

Complete job 성공적으로 동작한 것을 알 수 있다.

 

 

4. workflow_dispatch 추가

워크플로를 수동으로 트리거하려면 workflow_dispatch 이벤트를 사용한다.

Run workflow 버튼이 생기고, 버튼을 눌러 실행할 수 있다.

 

run workflow 버튼이 생겼다.