# name: workflow의 이름을 지정
name: npm-publish-package

# on: Workflow를 실행할 이벤트를 정의, push 이벤트 발생(main브랜치에 push)
on:
  push:
    branches:
      - main

# publish-npm라는 하나의 작업을 실행, 
# runs-on: 작업이 실행되는 환경.
# steps: 작업의 실행을 구성하는 단계
jobs:
  publish-npm:
    runs-on: ubuntu-latest 
    steps:
			# usees: actions/checkout@v4 -> 현재 레포지토리를 체크아웃하는 단계
      - uses: actions/checkout@v4
			# usees: actions/setup-node@v4 -> Node.js를 설정하는 단계
      - uses: actions/setup-node@v4
        with:
          node-version: 18
          registry-url: <https://npm.pkg.github.com/>
          cache: yarn
			# yarn을 사용하여 프로젝트의 의존성을 설치,  --frozen-lockfile플래그-> yarn.lock파일 업데이트 되었는지 확인
      - run: yarn install --frozen-lockfile

      - run: yarn publish
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_ACCESS_TOKEN }}