建立两个流水线workflows:npm publish
,npm unpublish
npm token
首先,登录npmjs后需要在上面Access Token
新增Token,选择Classic Token
可以无限使用,没有过期时间,type: Publish
就可以了
注意 :这里新增完及时复制,刷新页面后就永远看不到了,只能继续新增了
仓库Actions
tab页 仓库设置页
- Secrets: 这里我配置的是组织下都可以用的
Organization secrets
,在配置文件里面的使用方式如${{secrets.NPM_TOKEN}}
,注意这个不会打印出来内容,要打印出来的需要使用变量
如果是单个仓库,可以配置
Repository secrets
- Variables: 配置
npm unpublish
的版本号,会打印出来内容
npm publish
新建配置文件,只要输入名字就可以了,这里可以输入npm-publish
注意:有个模板,
build
跟publish
分成两个job
,会导致最后publish
的时候没有上一步的产物,所以这里要放在同一个job
下
可以填入以下内容 .github/workflows/npm-publish.yml
yaml
# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
name: npm-publish
on:
workflow_dispatch:
jobs:
publish-npm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
registry-url: https://registry.npmjs.org/
- run: npm install && npm build
- run: npm ci
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
npm unpublish
新建配置文件,只要输入名字就可以了,这里可以输入npm-unpublish
npm unpublish
的版本使用变量NPM_UNPUBLISH_VER
动态设置,同时job
里的name
也会引用这个变量,这样在外面就可以看到版本号了 可以填入以下内容 .github/workflows/npm-unpublish.yml
yaml
# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
name: npm-unpublish
on:
workflow_dispatch:
jobs:
unpublish:
name: unpublish @${{ vars.NPM_UNPUBLISH_VER }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
registry-url: https://registry.npmjs.org/
- run: npm unpublish @zr-lib/dev-torun@${{ vars.NPM_UNPUBLISH_VER }}
env:
NODE_AUTH_TOKEN: ${{secrets.npm_token}}
最后
更多的配置查看文档即可,可以手动点击发布,也可以配置自动触发