Github Actions를 이용한 npm publish

Tistory Editor의 빌드와 배포를 Github Actions로 변경한 후 다른 것도 해보고 싶었는데 때마침 tinymce plugin을 수정해야할 일이 생겼다. opengraph플러그인인데 Tistory Editor 소스코드에 포함하지 않았고 npm을 통해서 import하고 있다.

할일은 코드를 수정하고 tag를 만들면 npm install, npm publish를 하는 것이다. 또 npm publish를 할 때 인증처리를 해야한다.

npmpublish.yml

name: Release

on:
  push:
    tags:
      - v*

jobs:
  publish-npm:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - uses: actions/setup-node@v1
        with:
          node-version: 12
          registry-url: https://registry.npmjs.org/
      - run: npm install
      - run: npm publish
        env:
          NODE_AUTH_TOKEN: ${{secrets.npm_token}}

npm publish를 위한 workflow는 electron에 비해 굉장히 간단하다. 먼저 하나의 os에서만 해도 된다. 아무래도 개발/빌드 머신으로는 ubuntu가 좋은 것 같다. checkout은 당연히 하는거고 setup-node를 할때 registry-url을 지정해준다. 원래는 당연히 npmjs 뿐이었지만 지금은 yarn도 있고 github repository도 있으니 명시적으로 지정하는 것이 좋다.

가장 중요한 publish에서의 인증은 생각보다 간단하다. NODE_AUTH_TOKEN란 이름으로 npmjs에서 생성한 토큰을 넣어주면 된다. 이렇게만 하면 끝이다.


이렇게 하고 보니 flutter도 쉽게 할 수 있을 것 같다. flutter 설치와 apk 생성, release에 업로드까지만 하면 되니까... 뭐 play store에 업로드해도 되고. 다음에 수정할때 해봐야겠다.

반응형