Github Actions - 发布 npm 包

Github 推出个人免费私有仓库后,我就逐渐把在其它平台的私有仓库迁移过来了,万分方便。

唯一的遗憾就是 CI/CD,之前使用 Gitlab CI 体验很好,以至于我对其它的 CI 工具都提不起兴趣,一直期待 Github 能推出类似的,所以 Github Actions 的推出我是无比兴奋的。

需求

Less API 的发布我一直是本地手动执行的,现在借机实践一下 Github Actions 的初步使用。

我希望代码仓库 release 新版本时,触发 npm publish 流程。

1
2
3
# release
git tag v1.0.0
git push origin v1.0.0

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
name: release
on:
push:
tags:
- v*
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
with:
node-version: 12
- run: npm install
- run: npm run build
- run: npm test
publish-npm:
needs: test
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 i
- run: npm publish
env:
NODE_AUTH_TOKEN: '${{secrets.npm_token}}'

小结

主要是两个部分:

on 是触发条件,指明在 pushv* 分支时触发,* 是通配符;

jobs 是要执行的任务,我们有 testpublish-npm 两个任务,在这里指定了后者是依赖前者执行的;

secrets.npm_token 是在 Github 仓库的 Settings > Secrets 处添加的,名为 npm_token

Github Actions 给出了很详细的文档,不做过多细节介绍,见参考链接。

参考链接