1.先在https://www.npmjs.com注册一个账号,进入account
点击access tokens
生成一个新的token,注意:此token只显示一次
回到GitHub,新建一个repository,点击Settings->secrets,新建secret
进入actions页面,新建一个workflow: autopublish.yml,输入以下代码
name: Node.js Package
on:
push:
branches:
- master
jobs:
publish-npm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "12.x"
registry-url: https://registry.npmjs.org/
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{secrets.npm_token}}
上述代码的含义是在release分支做push操作时触发该workflow,运行npm相关指令,将结果推送到https://registry.npmjs.org的NPM_TOKEN指定的账户下。
为了publish install能顺利执行,需要添加package.json文件,npm init
{
"name": "cicd-demo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/992990831/cicd-demo.git"
},
"keywords": [],
"author": "",
"license": "ISC",
"bugs": {
"url": "https://github.com/992990831/cicd-demo/issues"
},
"homepage": "https://github.com/992990831/cicd-demo#readme"
}
3.提交到Release分支,进入actions tab查看
回到NPM,查看账户下的packages
可以看到package发布成功。
需要注意的一点是,package的version,是由代码库中的package.json -> version节点指定的。 如果要重新发布,需要手动修改version值。 后续需要考虑怎么通过自动化的方式,动态指定version值。
可以在本地github目录下建立一个自动提交和更改npm版本的脚本:
#!/bin/bash
commit_name="`date +%Y%m%d%H`_commit"
echo "====git auto push start..."
echo $commit_name
git add .
git commit -m $commit_name
npm version patch
git push
echo "====git auto push end..."