Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >github:action/workflow自动发布npm包

github:action/workflow自动发布npm包

作者头像
姓王者
发布于 2025-02-28 09:45:20
发布于 2025-02-28 09:45:20
7600
代码可运行
举报
文章被收录于专栏:姓王者的博客姓王者的博客
运行总次数:0
代码可运行

本文介绍 github action/workflow进行npm自动发包,并自动更新版本号

获取token

npm | Create New Access Token

2025-01-06-195821
2025-01-06-195821

请及时复制粘贴,并且不要泄露给他人

设置对应仓库的secerts

命名为NPM_TOKEN

2025-01-06-201302
2025-01-06-201302

直接复制粘贴代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
name: Auto Publish to NPM

on:
  push:
    branches: 
      - main

jobs:
  publish:
    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/main'
    permissions:
      contents: write
      packages: write
  
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
          token: ${{ secrets.GITHUB_TOKEN }}
        
      - name: Git Configuration
        run: |
          git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
          git config --global user.name "GitHub Actions[bot]"
        
      - uses: actions/setup-node@v3
        with:
          node-version: '20'
          registry-url: https://registry.npmjs.org/
        
      - name: Install dependencies
        run: npm ci || npm install
        
      - name: Get commit message
        id: commit
        run: |
          # 获取最后一次提交信息并处理多行信息
          FULL_MSG=$(git log -1 --pretty=format:"%B")
          echo "message<<EOF" >> $GITHUB_OUTPUT
          echo "$FULL_MSG" >> $GITHUB_OUTPUT
          echo "EOF" >> $GITHUB_OUTPUT
        
      - name: Determine version bump
        id: version
        if: github.ref == 'refs/heads/main'
        run: |
          MESSAGE="${{ steps.commit.outputs.message }}"
          # 检查提交信息中的关键字
          if [[ $MESSAGE =\x7e "BREAKING CHANGE:" ]] || [[ $MESSAGE =~ "!" ]]; then
            echo "type=major" >> $GITHUB_OUTPUT
            echo "Found major change trigger in commit message"
          elif [[ $MESSAGE =~ ^feat:.*$ ]] || [[ $MESSAGE =~ ^feature:.*$ ]]; then
            echo "type=minor" >> $GITHUB_OUTPUT
            echo "Found minor change trigger in commit message"
          else
            echo "type=patch" >> $GITHUB_OUTPUT
            echo "Default to patch version"
          fi
        
      - name: Automated Version Bump
        uses: 'phips28/gh-action-bump-version@master'
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          version-type: ${{ steps.version.outputs.type }}
          commit-message: 'CI: bumps version to {{version}} [skip ci]'
        
      - name: Publish to NPM
        run: npm publish --access public
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

提交信息格式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
例如:
- `feat: 添加新功能` -> 次版本号+1 (1.0.01.1.0)
- `fix: 修复bug` -> 修订号+1 (1.1.01.1.1)
- `BREAKING CHANGE: 重构API` -> 主版本号+1 (1.1.12.0.0)
- `feat!: 不兼容的新功能` -> 主版本号+1 (2.0.03.0.0)
- `docs: 更新文档` -> 修订号+1 (3.0.03.0.1)
- `refactor: 代码重构` -> 修订号+1 (3.0.13.0.2)
- `style: 调整样式` -> 修订号+1 (3.0.23.0.3)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
LV.0
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验