Skip to content

Commit ea61c10

Browse files
committed
chore: 🤖 更新release
1 parent b0eef22 commit ea61c10

1 file changed

Lines changed: 89 additions & 55 deletions

File tree

.github/workflows/release.yml

Lines changed: 89 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,117 @@
1-
# This action will publish the package to npm and create a GitHub release.
21
name: Release
32

43
on:
5-
# Run `npm run bump` to bump the version and create a git tag.
64
push:
75
tags:
8-
- "v*"
9-
6+
- 'v*'
107
workflow_dispatch:
11-
12-
permissions:
13-
contents: write
14-
id-token: write
8+
inputs:
9+
version:
10+
description: '发布版本 (例如: 1.0.0)'
11+
required: true
12+
type: string
1513

1614
jobs:
17-
publish:
15+
release:
1816
runs-on: ubuntu-latest
17+
permissions:
18+
contents: write
19+
packages: write
20+
id-token: write
21+
1922
steps:
20-
- name: Checkout
23+
- name: 检出代码
2124
uses: actions/checkout@v5
25+
with:
26+
fetch-depth: 0
2227

23-
- name: Setup pnpm
28+
- name: 设置 Node.js
29+
uses: actions/setup-node@v4
30+
with:
31+
node-version: 22.18.0
32+
registry-url: 'https://registry.npmjs.org'
33+
34+
- name: 安装 pnpm
2435
uses: pnpm/action-setup@v4
2536
with:
2637
version: 10.14.0
2738

28-
- name: Setup Node.js
29-
uses: actions/setup-node@v4
39+
- name: 获取 pnpm store 目录
40+
shell: bash
41+
run: |
42+
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
43+
44+
- name: 设置 pnpm 缓存
45+
uses: actions/cache@v4
3046
with:
31-
node-version: 22.20.0
32-
registry-url: 'https://registry.npmjs.org'
33-
scope: '@winner-fed'
34-
always-auth: true
47+
path: ${{ env.STORE_PATH }}
48+
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
49+
restore-keys: |
50+
${{ runner.os }}-pnpm-store-
3551
36-
- name: Update npm to latest
37-
run: npm install -g npm@latest
52+
- name: 安装依赖
53+
run: |
54+
# 尝试使用 frozen lockfile,如果失败则更新 lockfile
55+
pnpm install --frozen-lockfile || {
56+
echo "⚠️ Lockfile 不匹配,正在更新..."
57+
pnpm install --no-frozen-lockfile
58+
}
3859
39-
- name: Install Dependencies
40-
run: pnpm install --frozen-lockfile
60+
- name: 格式检查
61+
run: pnpm run lint
4162

42-
- name: Build
63+
- name: 构建项目
4364
run: pnpm run build
4465

45-
- name: Verify package.json
66+
- name: 获取版本号
67+
id: get_version
4668
run: |
47-
echo "Package name: $(node -p "require('./package.json').name")"
48-
echo "Package version: $(node -p "require('./package.json').version")"
69+
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
70+
echo "version=${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT
71+
echo "tag_name=v${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT
72+
else
73+
echo "version=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
74+
echo "tag_name=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
75+
fi
4976
50-
- name: Debug npm config
77+
- name: 更新版本号 (手动触发时)
78+
if: github.event_name == 'workflow_dispatch'
5179
run: |
52-
echo "=== npm 配置信息 ==="
53-
npm config list
54-
echo ""
55-
echo "=== 环境变量检查 ==="
56-
echo "NODE_AUTH_TOKEN exists: $([ -n "$NODE_AUTH_TOKEN" ] && echo 'yes' || echo 'no')"
57-
echo "NPM_TOKEN exists: $([ -n "$NPM_TOKEN" ] && echo 'yes' || echo 'no')"
58-
echo ""
59-
echo "=== npm 版本信息 ==="
60-
npm --version
61-
echo ""
62-
echo "=== 检查 .npmrc 文件 ==="
63-
cat ~/.npmrc 2>/dev/null || echo "未找到 .npmrc 文件"
64-
echo ""
65-
echo "=== 检查 npm 认证状态 ==="
66-
npm whoami || echo "未认证或认证失败"
67-
echo ""
68-
echo "=== 检查作用域配置 ==="
69-
npm config get @winner-fed:registry || echo "未找到作用域配置"
70-
echo ""
71-
echo "=== 检查认证 token 格式 ==="
72-
if [ -n "$NODE_AUTH_TOKEN" ]; then
73-
echo "Token 长度: ${#NODE_AUTH_TOKEN}"
74-
echo "Token 前缀: ${NODE_AUTH_TOKEN:0:20}..."
75-
fi
80+
npm version ${{ steps.get_version.outputs.version }} --no-git-tag-version
81+
git config --local user.email "action@github.com"
82+
git config --local user.name "GitHub Action"
83+
git add package.json
84+
git commit -m "chore: bump version to ${{ steps.get_version.outputs.version }}"
85+
git tag ${{ steps.get_version.outputs.tag_name }}
86+
git push origin HEAD:${{ github.ref_name }}
87+
git push origin ${{ steps.get_version.outputs.tag_name }}
88+
89+
- name: 生成变更日志
90+
id: changelog
91+
run: npx changelogithub
92+
continue-on-error: true
93+
env:
94+
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
7695

77-
- name: Publish to npm
78-
run: npm publish --access public --provenance
96+
- name: 发布到 npm
97+
run: pnpm publish --no-git-checks
98+
env:
99+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
79100

80-
- name: Create GitHub Release
81-
uses: ncipollo/release-action@v1
101+
- name: 创建 GitHub Release
102+
uses: actions/create-release@v1
103+
env:
104+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
82105
with:
83-
generateReleaseNotes: "true"
106+
tag_name: ${{ steps.get_version.outputs.tag_name }}
107+
release_name: Release ${{ steps.get_version.outputs.tag_name }}
108+
body_path: ${{ steps.changelog.outputs.changelog_file }}
109+
draft: false
110+
prerelease: false
111+
112+
- name: 通知发布成功
113+
run: |
114+
echo "🎉 发布成功!"
115+
echo "📦 版本: ${{ steps.get_version.outputs.version }}"
116+
echo "🏷️ 标签: ${{ steps.get_version.outputs.tag_name }}"
117+
echo "📝 npm: https://www.npmjs.com/package/@winner-fed/plugin-antdv"

0 commit comments

Comments
 (0)