惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
Hugging Face - Blog
Hugging Face - Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Vercel News
Vercel News
人人都是产品经理
人人都是产品经理
G
Google Developers Blog
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
雷峰网
雷峰网
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
博客园 - 叶小钗
D
DataBreaches.Net
D
Docker
月光博客
月光博客
博客园 - 司徒正美
Last Week in AI
Last Week in AI
有赞技术团队
有赞技术团队
腾讯CDC
酷 壳 – CoolShell
酷 壳 – CoolShell

姓王者的博客

Linux用户Secure Boot自主维护指南 | 姓王者的博客 MAD Bugs 已经开始——关于信息安全的军备竞赛 | 姓王者的博客 解决钉钉Dingtalk无法在Linux新版内核上启动问题-修复可执行栈错误 | 姓王者的博客 突发:GitHub 正遭受大规模 Issue 赌博广告轰炸 | 姓王者的博客 Ubuntu26.04-beta体验:坚毅浣熊! | 姓王者的博客 fakeclaw装作龙虾发贴吧 | 姓王者的博客 找回12年前的QQ记忆 | 姓王者的博客 在Linux上玩Flash网页游戏-洛克王国 | 姓王者的博客 Copilot将使用交互数据来训练 | 姓王者的博客 重要通知-请更新我的GPG公钥 | 姓王者的博客 为了自由Android | 姓王者的博客 GPL"2,3"事 | 姓王者的博客 短文-对VitePlus的一点🤏小贡献 | 姓王者的博客 Bing收录没了?亲测有效的快速恢复指南 | 姓王者的博客 解决桌面设备二维码快速识别的工具-ClipQR | 姓王者的博客 解决 Nautilus 自定义终端插件安装依赖问题 | 姓王者的博客 OpenClaw 该熄火了 | 姓王者的博客 Vite8 - 统一的基建开始 | 姓王者的博客 Astro 6 推出啦 | 姓王者的博客 ubuntu的openvpn异常暂停推送更新 | 姓王者的博客 Ubuntu 24.04 安装 Win10 虚拟机 | 姓王者的博客 ESA-后记:热爱阿里云 | 姓王者的博客 Moonbit 0.8.0 重大发布,我也要改一下我的包 | 姓王者的博客 ESA Pages 边缘开发大赛获奖 | 姓王者的博客 Astro: 优化katex,mermaid和灯箱使用 | 姓王者的博客 从edgeone迁移到esa | 姓王者的博客 出租人类:AI时代的荒诞与真实 | 姓王者的博客 Astro 5.17构建性能优化实践:从18s到13s | 姓王者的博客 Moonbit License Checker 开发使用 | 姓王者的博客 Stalux Astro博客主题自荐 | 姓王者的博客
github:action/workflow自动发布npm包 | 姓王者的博客
作者:xingwangzhe · 2025-01-06 · via 姓王者的博客

🕒 阅读时间:1 分钟 📝 字数:340 👀 阅读量: Loading...

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

获取token

获取token

npm | Create New Access Token

2025-01-06-195821

Warning

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

设置对应仓库的secerts

命名为NPM_TOKEN

2025-01-06-201302

直接复制粘贴代码

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 }}

提交信息格式

例如:

- `feat: 添加新功能` -> 次版本号+1 (1.0.0 → 1.1.0)

- `fix: 修复bug` -> 修订号+1 (1.1.0 → 1.1.1)

- `BREAKING CHANGE: 重构API` -> 主版本号+1 (1.1.1 → 2.0.0)

- `feat!: 不兼容的新功能` -> 主版本号+1 (2.0.0 → 3.0.0)

- `docs: 更新文档` -> 修订号+1 (3.0.0 → 3.0.1)

- `refactor: 代码重构` -> 修订号+1 (3.0.1 → 3.0.2)

- `style: 调整样式` -> 修订号+1 (3.0.2 → 3.0.3)