46 lines
1.3 KiB
YAML
46 lines
1.3 KiB
YAML
name: Release
|
||
|
||
# 只有推送 v 开头的 tag 时才触发(例如 v1.2.3)
|
||
on:
|
||
push:
|
||
tags:
|
||
- 'v*'
|
||
|
||
jobs:
|
||
release:
|
||
runs-on: ubuntu-latest
|
||
permissions:
|
||
contents: write # 必须,用于创建 Release
|
||
|
||
steps:
|
||
- name: Checkout code
|
||
uses: actions/checkout@v4
|
||
with:
|
||
fetch-depth: 0 # 获取完整历史,方便生成 release notes
|
||
|
||
# 1. 设置 Node.js + npm 发布配置
|
||
- name: Setup Node.js
|
||
uses: actions/setup-node@v4
|
||
with:
|
||
node-version: 20
|
||
registry-url: 'https://registry.npmjs.org'
|
||
cache: 'npm'
|
||
|
||
# 2. 安装依赖
|
||
- name: Install dependencies
|
||
run: npm ci
|
||
|
||
# 3. 自动创建 GitHub Release(带自动生成的 Release Notes)
|
||
- name: Create GitHub Release
|
||
uses: ncipollo/release-action@v1
|
||
with:
|
||
tag: ${{ github.ref_name }}
|
||
name: ${{ github.ref_name }}
|
||
generateReleaseNotes: true
|
||
prerelease: ${{ contains(github.ref_name, '-') }} # 带 -beta / -rc 的自动设为预发布
|
||
|
||
# 4. 发布到 npm(只在正式 tag 时执行)
|
||
- name: Publish to npm
|
||
run: npm publish --access public
|
||
env:
|
||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} |