Github

[Github] Github Action 세팅하기 (Node.js CI)

orange_mj 2025. 1. 7. 06:25

 

이번에 그동안 해보지 못했던 깃허브 액션에 대해 세팅할 기회가 있었다. pnpm 을 사용하기 때문에 깃헙 docs 에서도 자세히 가이드를 주지 않아 세팅하기 어려웠던 것 같다. 캐싱 쪽에서 문제가 생긴 건지 처음 올린 코드에서는 빌드 오류가 떴고, 에러를 좀 더 확인해보니 ~.. (이부분 더 쓰기 )


GitHub Actions란?

GitHub Actions는 GitHub 리포지토리에서 CI/CD(Continuous Integration/Continuous Deployment) 워크플로우를 자동화하는 도구이다. 이를 통해 코드 빌드, 테스트, 배포 등의 작업을 자동으로 실행할 수 있다.

 

GitHub Actions의 주요 개념

1. 워크플로우(Workflow):

작업의 전체 흐름을 정의하는 파일.

.github/workflows 디렉토리에 YAML 파일로 저장된다.

2. 이벤트(Event):

워크플로우가 실행되는 트리거(조건).

예: push, pull_request, schedule (크론 작업), workflow_dispatch (수동 실행).

3. 잡(Job):

워크플로우의 각 독립적인 작업 단위.

여러 잡을 병렬 또는 순차적으로 실행할 수 있습니다.

4. 스텝(Step):

잡 내에서 실행되는 개별 명령어 또는 액션.

명령어 실행(run) 또는 GitHub에서 제공하는 액션(uses)을 사용.

5. 러너(Runner):

워크플로우가 실행되는 환경.

GitHub 호스팅 러너(ubuntu-latest, windows-latest, 등) 또는 셀프 호스팅 러너를 사용할 수 있다.

 

 

Github Action 세팅 방법

1. Actions 에 들어간다.

깃허브 액션 세팅을 위해서는 해당 화면에서 Actions 를 누른다.

 

2. 내가 행하고자 하는 액션을 선택한다.

 

우리는 Node.js 환경이기 때문에 node.js 를 눌러준다.

 

3. 행할 Jobs 를 수정한다.

다음과 같이  초기 코드가 뜨는데,

우리는 pnpm 을 쓸 것이기 때문에 좀 더 손을 봐줘야 했다.

 

근데 ,, 

 

name: Node.js CI
on:
  push:
    branches: [ "develop" ]
  pull_request:
    branches: [ "develop" ]
jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [18.x, 20.x, 22.x]
        # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
    steps:
    - uses: actions/checkout@v4
    
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v4
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'pnpm' 
    
    - name: Install pnpm
      run: npm install -g pnpm
    - name: Install dependencies
      run: pnpm install 
    - name: Build project
      run: pnpm build --if-present
    - name: Run tests
      run: pnpm test

다음과 같이 작성하니까, 빌드 에러가 떴다.

 

 

그래서 Pnpm 에 대한 정보가 공식문서에 있는지 확인해봤더니, pnpm은 github docs에도 인증되지 않은 비공식 작업 코드를 제공한다.