(from Dean)
Workflow 내 작업(Jobs)들은 독립된 환경에서 실행되는 일입니다.
→ 독립된 환경이라는 것은 다른 CI 서버에서 실행된다는 의미
Jobs는순차적으로 수행되는 “Steps”로 구성되어 있습니다.
# 해당 Workflow Name 정의
name: npm-publish-package
# 어떤 Action이 발생하면 실행될지 Trigger 설정
on:
release:
types: [created]
jobs:
# 해당 jobs의 이름입니다.
publish-package:
# ubuntu 환경을 구성합니다.(운영 체제 설정)
runs-on: ubuntu-latest
steps:
# checkout 하겠다는 의미로 해당 레포에 있는 코드를 내려 받고 특정 브랜치로 전환하겠다는 것입니다.
- uses: actions/checkout@v2
# Node.js 환경을 세팅입니다.
# 여기까지는 거의 default setting이에요. 우리는 Node 환경에서 Project를 Build, Install… 하니깐요.
# 참고로 uses는 이미 만들어져 있는 script를 가져다 쓰는거에요. actions/checkout,, actions/setup-node 모두 이미 만들어져 있답니다.
# 참고 : <https://github.com/actions/setup-node>
- uses: actions/setup-node@v2
with:
node-version: 18
# .yarnrc file 생성 및 rigistry url 추가(입력하지 않으면 defualt '' 라고 합니다.)
registry-url: <https://npm.pkg.github.com/>
cache: 'yarn'
# install이 필요할지는 모르겠네요.. 제 생각에는 없어도 될 것 같기도..?!
- run: yarn install —frozen-lockfile
# 배포 명령어. npm secret token을 발급 받아서 github secret에 추가해놓고 사용하시면 됩니다.
# 당연히 publish 되려면 version이 이전보다 높아야해요~
- run: yarn publish
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_ACCESS_TOKEN}}