standard-version + github action实现自动化部署npm包

491 阅读2分钟

前言

通过standard-version配合约定式提交,实现自动生成CHANGELOG和语义化的版本变更。

通过github action实现自动发布npm包。

约定式提交

概述

约定式提交规范是一种基于提交消息的轻量级约定。 它提供了一组用于创建清晰的提交历史的简单规则; 这使得编写基于规范的自动化工具变得更容易。 这个约定与 SemVer 相吻合, 在提交信息中描述新特性、bug 修复和破坏性变更。

格式

<类型>[可选的作用域]: <描述>

[可选的正文]

[可选的脚注]

规则

fix: fix提交表示在代码库中修复了一个 bug(这和语义化版本中的 PATCH 相对应)。
feat: feat提交表示在代码库中新增了一个功能(这和语义化版本中的 MINOR 相对应)。
BREAKING CHANGE: 在可选的正文或脚注的起始位置带有 BREAKING CHANGE: 的提交,表示引入了破坏性 
API 变更(这和语义化版本中的 MAJOR 相对应)。 破坏性变更可以是任意类型提交的一部分。

可以为提交类型添加一个围在圆括号内的作用域,以为其提供额外的上下文信息。例如 
feat(parser): adds ability to parse arrays.

参考链接

www.conventionalcommits.org/zh-hans/v1.…

github.com/conventiona…

接入github action

1. 申请npm令牌

前言:

在使用 API 或 npm 命令行界面 (CLI) 时,访问令牌是使用您的用户名和密码对 npm 进行身份验证的替代方法。访问令牌是可用于身份验证的十六进制字符串,它赋予您安装和/或发布模块的权利。

2. npm令牌接入github secert

3. 编写github action

// .github/workflows/publish.yml
name: auto-release

on:  push:    
branches: [main]
jobs:  publish-npm:    
    runs-on: ubuntu-latest    
    steps:      
        - uses: actions/checkout@main      
        - uses: actions/setup-node@v1        
            with: node-version: 17          
            registry-url: https://registry.npmjs.org/      
        - run: git config user.name Gjb7598189      
        - run: git config user.email 1171772585@qq.com      
        - run: npx standard-version      
        - run: git push origin main      
        - run: npm publish
            env: 
                NPM_AUTH_TOKEN: ${{secrets.NPM_AUTH_TOKEN}}

4. 编辑项目根目录下的.npmrc

// .npmrc
//registry.npmjs.org/:_authToken=${NPM_AUTH_TOKEN} 
// 这里的NPM_AUTH_TOKEN对应yml文件z红的env.NPM_AUTH_TOKEN

这样当我们执行git push origin main的时候,github就会自动执行这个action,然后更新版本信息,发布到npm源。