ccman 2.1.3 → 2.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +201 -301
- package/README_en.md +294 -0
- package/dist/cli.js +213 -33
- package/dist/cli.js.map +1 -1
- package/dist/config/default-providers.d.ts +34 -0
- package/dist/config/default-providers.d.ts.map +1 -0
- package/dist/config/default-providers.js +96 -0
- package/dist/config/default-providers.js.map +1 -0
- package/dist/config/static-env.d.ts +1 -1
- package/dist/config/static-env.js +1 -1
- package/dist/core/ClaudeConfigManager.d.ts +1 -1
- package/dist/core/ClaudeConfigManager.d.ts.map +1 -1
- package/dist/core/ClaudeConfigManager.js +2 -4
- package/dist/core/ClaudeConfigManager.js.map +1 -1
- package/package.json +24 -3
- package/.editorconfig +0 -15
- package/.env.development +0 -3
- package/.env.production +0 -3
- package/.eslintrc.js +0 -28
- package/.github/workflows/release.yml +0 -99
- package/.prettierrc +0 -10
- package/CLAUDE.md +0 -279
- package/README_zh.md +0 -394
- package/dev-test.sh +0 -40
- package/docs/npm-publish-guide.md +0 -71
- package/docs/release-guide.md +0 -144
- package/docs/scripts-guide.md +0 -221
- package/docs/version-management.md +0 -64
- package/jest.config.js +0 -22
- package/release-temp/README.md +0 -394
- package/release-temp/package.json +0 -61
- package/scripts/build-env.js +0 -75
- package/scripts/modules/check-uncommitted.sh +0 -109
- package/scripts/modules/create-tag.sh +0 -279
- package/scripts/modules/monitor-release.sh +0 -296
- package/scripts/modules/version-bump.sh +0 -262
- package/scripts/publish-local.sh +0 -91
- package/scripts/quick-release.sh +0 -100
- package/scripts/release.sh +0 -430
- package/scripts/smart-release-v3.sh +0 -283
- package/scripts/smart-release.sh +0 -322
- package/src/cli.ts +0 -598
- package/src/commands/lang.ts +0 -105
- package/src/core/CCMConfigManager.ts +0 -259
- package/src/core/ClaudeConfigManager.ts +0 -141
- package/src/i18n/LanguageManager.ts +0 -169
- package/src/i18n/messages.ts +0 -233
- package/src/index.ts +0 -4
- package/src/providers/ProviderManager.ts +0 -412
- package/src/types/index.ts +0 -101
- package/src/utils/env-config.ts +0 -53
- package/src/utils/version.ts +0 -16
- package/tsconfig.json +0 -25
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# 脚本2: 版本提升模块
|
|
4
|
-
# 功能: 智能选择和执行版本号升级
|
|
5
|
-
|
|
6
|
-
set -e
|
|
7
|
-
|
|
8
|
-
# 颜色定义
|
|
9
|
-
GREEN='\033[0;32m'
|
|
10
|
-
YELLOW='\033[1;33m'
|
|
11
|
-
RED='\033[0;31m'
|
|
12
|
-
BLUE='\033[0;34m'
|
|
13
|
-
NC='\033[0m'
|
|
14
|
-
|
|
15
|
-
print_success() { echo -e "${GREEN}✅ $1${NC}"; }
|
|
16
|
-
print_warning() { echo -e "${YELLOW}⚠️ $1${NC}"; }
|
|
17
|
-
print_error() { echo -e "${RED}❌ $1${NC}"; }
|
|
18
|
-
print_info() { echo -e "${BLUE}ℹ️ $1${NC}"; }
|
|
19
|
-
|
|
20
|
-
# 获取当前版本
|
|
21
|
-
get_current_version() {
|
|
22
|
-
if [ ! -f "package.json" ]; then
|
|
23
|
-
print_error "package.json 未找到"
|
|
24
|
-
exit 1
|
|
25
|
-
fi
|
|
26
|
-
|
|
27
|
-
current_version=$(node -p "require('./package.json').version" 2>/dev/null || echo "")
|
|
28
|
-
if [ -z "$current_version" ]; then
|
|
29
|
-
print_error "无法读取当前版本号"
|
|
30
|
-
exit 1
|
|
31
|
-
fi
|
|
32
|
-
|
|
33
|
-
echo "$current_version"
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
# 计算版本预览
|
|
37
|
-
calculate_version_preview() {
|
|
38
|
-
local version_type=$1
|
|
39
|
-
local preview=$(pnpm version $version_type --dry-run 2>/dev/null)
|
|
40
|
-
|
|
41
|
-
if [ -n "$preview" ]; then
|
|
42
|
-
# 移除前缀v并返回
|
|
43
|
-
echo "$preview" | sed 's/^v//'
|
|
44
|
-
else
|
|
45
|
-
echo "计算失败"
|
|
46
|
-
fi
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
# 分析git提交推荐版本类型
|
|
50
|
-
analyze_commit_history() {
|
|
51
|
-
local commits=$(git log --oneline -10 2>/dev/null | tr '[:upper:]' '[:lower:]' || echo "")
|
|
52
|
-
local suggested_type="patch"
|
|
53
|
-
|
|
54
|
-
if [[ $commits == *"breaking"* ]] || [[ $commits == *"major"* ]]; then
|
|
55
|
-
suggested_type="major"
|
|
56
|
-
elif [[ $commits == *"feat"* ]] || [[ $commits == *"feature"* ]] || [[ $commits == *"add"* ]]; then
|
|
57
|
-
suggested_type="minor"
|
|
58
|
-
fi
|
|
59
|
-
|
|
60
|
-
echo "$suggested_type"
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
# 主函数: 版本选择和升级
|
|
64
|
-
version_bump() {
|
|
65
|
-
local current_version=$(get_current_version)
|
|
66
|
-
local version_type=${1:-""}
|
|
67
|
-
|
|
68
|
-
# 安静模式检测:如果被其他脚本调用,则静默运行
|
|
69
|
-
if [ "$0" != "${BASH_SOURCE[0]}" ] || [ "$version_type" = "test" ] || [ "$version_type" = "--quiet" ]; then
|
|
70
|
-
# 静默模式:只返回结果,不显示菜单
|
|
71
|
-
if [ -n "$version_type" ] && [ "$version_type" != "test" ] && [ "$version_type" != "--quiet" ]; then
|
|
72
|
-
execute_version_bump_quiet "$version_type" "$current_version"
|
|
73
|
-
return $?
|
|
74
|
-
else
|
|
75
|
-
# 测试模式,只返回当前版本
|
|
76
|
-
echo "$current_version"
|
|
77
|
-
return 0
|
|
78
|
-
fi
|
|
79
|
-
fi
|
|
80
|
-
|
|
81
|
-
echo "📦 CCM 版本管理器"
|
|
82
|
-
echo "=================="
|
|
83
|
-
print_info "当前版本: $current_version"
|
|
84
|
-
echo ""
|
|
85
|
-
|
|
86
|
-
# 如果已指定版本类型,直接执行
|
|
87
|
-
if [ -n "$version_type" ] && [ "$version_type" != "test" ]; then
|
|
88
|
-
execute_version_bump "$version_type" "$current_version"
|
|
89
|
-
return $?
|
|
90
|
-
fi
|
|
91
|
-
|
|
92
|
-
# 获取智能推荐
|
|
93
|
-
local suggested_type=$(analyze_commit_history)
|
|
94
|
-
|
|
95
|
-
# 显示版本选择菜单
|
|
96
|
-
show_version_menu "$current_version" "$suggested_type"
|
|
97
|
-
|
|
98
|
-
# 获取用户选择
|
|
99
|
-
read -p "请选择版本升级类型 (1-4, 回车默认选择推荐): " choice
|
|
100
|
-
|
|
101
|
-
# 处理用户选择
|
|
102
|
-
case ${choice:-""} in
|
|
103
|
-
"")
|
|
104
|
-
# 回车默认选择推荐版本
|
|
105
|
-
version_type="$suggested_type"
|
|
106
|
-
;;
|
|
107
|
-
1) version_type="patch" ;;
|
|
108
|
-
2) version_type="minor" ;;
|
|
109
|
-
3) version_type="major" ;;
|
|
110
|
-
4) handle_custom_version ;;
|
|
111
|
-
*)
|
|
112
|
-
print_error "无效选择"
|
|
113
|
-
exit 1
|
|
114
|
-
;;
|
|
115
|
-
esac
|
|
116
|
-
|
|
117
|
-
# 确认升级
|
|
118
|
-
confirm_version_bump "$version_type" "$current_version"
|
|
119
|
-
|
|
120
|
-
# 执行升级
|
|
121
|
-
execute_version_bump "$version_type" "$current_version"
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
# 显示版本选择菜单
|
|
125
|
-
show_version_menu() {
|
|
126
|
-
local current_version=$1
|
|
127
|
-
local suggested_type=$2
|
|
128
|
-
|
|
129
|
-
print_info "版本升级选项:"
|
|
130
|
-
echo ""
|
|
131
|
-
|
|
132
|
-
# 计算各版本预览
|
|
133
|
-
local patch_version=$(calculate_version_preview "patch")
|
|
134
|
-
local minor_version=$(calculate_version_preview "minor")
|
|
135
|
-
local major_version=$(calculate_version_preview "major")
|
|
136
|
-
|
|
137
|
-
# 显示推荐标记
|
|
138
|
-
local patch_mark=""
|
|
139
|
-
local minor_mark=""
|
|
140
|
-
local major_mark=""
|
|
141
|
-
|
|
142
|
-
case $suggested_type in
|
|
143
|
-
"patch") patch_mark="✨ [推荐] " ;;
|
|
144
|
-
"minor") minor_mark="✨ [推荐] " ;;
|
|
145
|
-
"major") major_mark="✨ [推荐] " ;;
|
|
146
|
-
esac
|
|
147
|
-
|
|
148
|
-
echo "1) ${patch_mark}🔧 Patch (修订版本) $current_version → $patch_version"
|
|
149
|
-
echo " └─ 适用于: bug修复、小改进"
|
|
150
|
-
echo ""
|
|
151
|
-
echo "2) ${minor_mark}✨ Minor (次版本) $current_version → $minor_version"
|
|
152
|
-
echo " └─ 适用于: 新功能、向后兼容改动"
|
|
153
|
-
echo ""
|
|
154
|
-
echo "3) ${major_mark}🚀 Major (主版本) $current_version → $major_version"
|
|
155
|
-
echo " └─ 适用于: 破坏性更改、重大重构"
|
|
156
|
-
echo ""
|
|
157
|
-
echo "4) 📝 Custom (自定义版本)"
|
|
158
|
-
echo " └─ 手动输入版本号"
|
|
159
|
-
echo ""
|
|
160
|
-
|
|
161
|
-
# 显示推荐原因
|
|
162
|
-
case $suggested_type in
|
|
163
|
-
"major")
|
|
164
|
-
print_warning "💡 检测到破坏性更改提交,建议主版本升级"
|
|
165
|
-
;;
|
|
166
|
-
"minor")
|
|
167
|
-
print_warning "💡 检测到新功能提交,建议次版本升级"
|
|
168
|
-
;;
|
|
169
|
-
"patch")
|
|
170
|
-
print_info "💡 建议修订版本升级"
|
|
171
|
-
;;
|
|
172
|
-
esac
|
|
173
|
-
echo ""
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
# 处理自定义版本
|
|
177
|
-
handle_custom_version() {
|
|
178
|
-
read -p "请输入自定义版本号 (格式: x.y.z): " custom_version
|
|
179
|
-
|
|
180
|
-
# 验证版本号格式
|
|
181
|
-
if [[ ! $custom_version =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9]+(\.[0-9]+)?)?$ ]]; then
|
|
182
|
-
print_error "版本号格式不正确,应为 x.y.z 格式"
|
|
183
|
-
exit 1
|
|
184
|
-
fi
|
|
185
|
-
|
|
186
|
-
version_type="$custom_version"
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
# 确认版本升级
|
|
190
|
-
confirm_version_bump() {
|
|
191
|
-
local version_type=$1
|
|
192
|
-
local current_version=$2
|
|
193
|
-
|
|
194
|
-
if [[ "$version_type" =~ ^[0-9]+\.[0-9]+\.[0-9]+ ]]; then
|
|
195
|
-
local new_version="$version_type"
|
|
196
|
-
else
|
|
197
|
-
local new_version=$(calculate_version_preview "$version_type")
|
|
198
|
-
fi
|
|
199
|
-
|
|
200
|
-
echo ""
|
|
201
|
-
print_info "即将执行版本升级: $current_version → $new_version"
|
|
202
|
-
read -p "确认升级版本? (Y/n): " -n 1 -r
|
|
203
|
-
echo
|
|
204
|
-
|
|
205
|
-
if [[ $REPLY =~ ^[Nn]$ ]]; then
|
|
206
|
-
print_warning "版本升级已取消"
|
|
207
|
-
exit 0
|
|
208
|
-
fi
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
# 执行版本升级(静默模式)
|
|
212
|
-
execute_version_bump_quiet() {
|
|
213
|
-
local version_type=$1
|
|
214
|
-
local current_version=$2
|
|
215
|
-
|
|
216
|
-
# 执行版本升级
|
|
217
|
-
if [[ "$version_type" =~ ^[0-9]+\.[0-9]+\.[0-9]+ ]]; then
|
|
218
|
-
# 自定义版本
|
|
219
|
-
new_version=$(pnpm version "$version_type" --no-git-tag-version 2>/dev/null)
|
|
220
|
-
else
|
|
221
|
-
# 标准版本类型
|
|
222
|
-
new_version=$(pnpm version "$version_type" --no-git-tag-version 2>/dev/null)
|
|
223
|
-
fi
|
|
224
|
-
|
|
225
|
-
if [ $? -eq 0 ]; then
|
|
226
|
-
new_version=${new_version#v}
|
|
227
|
-
echo "$new_version" # 输出新版本号供其他脚本使用
|
|
228
|
-
else
|
|
229
|
-
exit 1
|
|
230
|
-
fi
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
# 执行版本升级(交互模式)
|
|
234
|
-
execute_version_bump() {
|
|
235
|
-
local version_type=$1
|
|
236
|
-
local current_version=$2
|
|
237
|
-
|
|
238
|
-
print_info "执行版本升级..."
|
|
239
|
-
|
|
240
|
-
# 执行版本升级
|
|
241
|
-
if [[ "$version_type" =~ ^[0-9]+\.[0-9]+\.[0-9]+ ]]; then
|
|
242
|
-
# 自定义版本
|
|
243
|
-
new_version=$(pnpm version "$version_type" --no-git-tag-version 2>/dev/null)
|
|
244
|
-
else
|
|
245
|
-
# 标准版本类型
|
|
246
|
-
new_version=$(pnpm version "$version_type" --no-git-tag-version 2>/dev/null)
|
|
247
|
-
fi
|
|
248
|
-
|
|
249
|
-
if [ $? -eq 0 ]; then
|
|
250
|
-
new_version=${new_version#v}
|
|
251
|
-
print_success "版本升级成功: $current_version → $new_version"
|
|
252
|
-
echo "$new_version" # 输出新版本号供其他脚本使用
|
|
253
|
-
else
|
|
254
|
-
print_error "版本升级失败"
|
|
255
|
-
exit 1
|
|
256
|
-
fi
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
# 如果直接运行此脚本
|
|
260
|
-
if [ "${BASH_SOURCE[0]}" == "${0}" ]; then
|
|
261
|
-
version_bump "$@"
|
|
262
|
-
fi
|
package/scripts/publish-local.sh
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# Local NPM Publish Script
|
|
4
|
-
# 本地 NPM 发布脚本(备用方案)
|
|
5
|
-
|
|
6
|
-
set -e
|
|
7
|
-
|
|
8
|
-
# 颜色定义
|
|
9
|
-
GREEN='\033[0;32m'
|
|
10
|
-
YELLOW='\033[1;33m'
|
|
11
|
-
RED='\033[0;31m'
|
|
12
|
-
BLUE='\033[0;34m'
|
|
13
|
-
NC='\033[0m'
|
|
14
|
-
|
|
15
|
-
print_success() { echo -e "${GREEN}✅ $1${NC}"; }
|
|
16
|
-
print_warning() { echo -e "${YELLOW}⚠️ $1${NC}"; }
|
|
17
|
-
print_error() { echo -e "${RED}❌ $1${NC}"; exit 1; }
|
|
18
|
-
print_info() { echo -e "${BLUE}ℹ️ $1${NC}"; }
|
|
19
|
-
|
|
20
|
-
echo "🚀 CCM 本地 NPM 发布脚本"
|
|
21
|
-
echo "==============================="
|
|
22
|
-
echo ""
|
|
23
|
-
|
|
24
|
-
# 检查前置条件
|
|
25
|
-
[ ! -f "package.json" ] && print_error "package.json 未找到"
|
|
26
|
-
[ ! -d "dist" ] && print_error "dist 目录不存在,请先运行 npm run build"
|
|
27
|
-
|
|
28
|
-
# 检查 NPM 登录状态
|
|
29
|
-
print_info "检查 NPM 登录状态..."
|
|
30
|
-
if ! npm whoami > /dev/null 2>&1; then
|
|
31
|
-
print_warning "未登录 NPM,开始登录流程..."
|
|
32
|
-
npm login
|
|
33
|
-
print_success "NPM 登录成功"
|
|
34
|
-
else
|
|
35
|
-
current_user=$(npm whoami)
|
|
36
|
-
print_success "已登录 NPM,用户: $current_user"
|
|
37
|
-
fi
|
|
38
|
-
|
|
39
|
-
# 获取版本信息
|
|
40
|
-
current_version=$(node -p "require('./package.json').version")
|
|
41
|
-
package_name=$(node -p "require('./package.json').name")
|
|
42
|
-
|
|
43
|
-
print_info "包名: $package_name"
|
|
44
|
-
print_info "当前版本: $current_version"
|
|
45
|
-
|
|
46
|
-
# 检查版本是否已存在
|
|
47
|
-
print_info "检查版本是否已存在..."
|
|
48
|
-
if npm view $package_name@$current_version > /dev/null 2>&1; then
|
|
49
|
-
print_error "版本 $current_version 已存在于 NPM 上"
|
|
50
|
-
fi
|
|
51
|
-
|
|
52
|
-
print_success "版本检查通过"
|
|
53
|
-
|
|
54
|
-
# 运行预发布检查
|
|
55
|
-
print_info "运行预发布检查..."
|
|
56
|
-
pnpm run lint
|
|
57
|
-
pnpm run build
|
|
58
|
-
|
|
59
|
-
print_success "预发布检查通过"
|
|
60
|
-
|
|
61
|
-
# 确认发布
|
|
62
|
-
echo ""
|
|
63
|
-
print_warning "即将发布到 NPM:"
|
|
64
|
-
echo " 包名: $package_name"
|
|
65
|
-
echo " 版本: $current_version"
|
|
66
|
-
echo " 用户: $(npm whoami)"
|
|
67
|
-
echo ""
|
|
68
|
-
|
|
69
|
-
read -p "确认发布? (y/N): " -n 1 -r
|
|
70
|
-
echo
|
|
71
|
-
[[ ! $REPLY =~ ^[Yy]$ ]] && { echo "取消发布"; exit 0; }
|
|
72
|
-
|
|
73
|
-
# 执行发布
|
|
74
|
-
print_info "开始发布..."
|
|
75
|
-
|
|
76
|
-
# 检查是否为预发布版本
|
|
77
|
-
if [[ $current_version =~ -beta\.|alpha\.|rc\. ]]; then
|
|
78
|
-
print_info "检测到预发布版本,使用 beta tag"
|
|
79
|
-
npm publish --tag beta --access public
|
|
80
|
-
else
|
|
81
|
-
print_info "发布稳定版本"
|
|
82
|
-
npm publish --access public
|
|
83
|
-
fi
|
|
84
|
-
|
|
85
|
-
print_success "发布成功!"
|
|
86
|
-
echo ""
|
|
87
|
-
print_info "📦 NPM 包信息:"
|
|
88
|
-
echo " URL: https://www.npmjs.com/package/$package_name/v/$current_version"
|
|
89
|
-
echo " 安装: npm install -g $package_name@$current_version"
|
|
90
|
-
echo ""
|
|
91
|
-
print_success "本地发布完成!"
|
package/scripts/quick-release.sh
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# CCM Quick Release Script
|
|
4
|
-
# 快速发布补丁版本的简化脚本
|
|
5
|
-
|
|
6
|
-
set -e
|
|
7
|
-
|
|
8
|
-
# 颜色定义
|
|
9
|
-
GREEN='\033[0;32m'
|
|
10
|
-
YELLOW='\033[1;33m'
|
|
11
|
-
RED='\033[0;31m'
|
|
12
|
-
BLUE='\033[0;34m'
|
|
13
|
-
NC='\033[0m'
|
|
14
|
-
|
|
15
|
-
print_success() { echo -e "${GREEN}✅ $1${NC}"; }
|
|
16
|
-
print_warning() { echo -e "${YELLOW}⚠️ $1${NC}"; }
|
|
17
|
-
print_error() { echo -e "${RED}❌ $1${NC}"; exit 1; }
|
|
18
|
-
print_info() { echo -e "${BLUE}ℹ️ $1${NC}"; }
|
|
19
|
-
|
|
20
|
-
# 快速检查
|
|
21
|
-
[ ! -f "package.json" ] && print_error "package.json 未找到"
|
|
22
|
-
[ ! -d ".git" ] && print_error "不在 Git 仓库中"
|
|
23
|
-
git diff-index --quiet HEAD -- || print_error "工作目录有未提交更改"
|
|
24
|
-
|
|
25
|
-
# 获取当前版本和升级类型
|
|
26
|
-
current_version=$(node -p "require('./package.json').version")
|
|
27
|
-
version_type=${1:-""}
|
|
28
|
-
|
|
29
|
-
echo "🚀 CCM 快速发布"
|
|
30
|
-
echo "当前版本: $current_version"
|
|
31
|
-
|
|
32
|
-
# 如果没有提供版本类型,让用户选择
|
|
33
|
-
if [ -z "$version_type" ]; then
|
|
34
|
-
echo ""
|
|
35
|
-
print_info "选择版本类型:"
|
|
36
|
-
echo "1) patch (修订版本): $current_version → $(pnpm version patch --dry-run 2>/dev/null | cut -d'v' -f2 || echo '计算中...')"
|
|
37
|
-
echo "2) minor (次版本): $current_version → $(pnpm version minor --dry-run 2>/dev/null | cut -d'v' -f2 || echo '计算中...')"
|
|
38
|
-
echo "3) major (主版本): $current_version → $(pnpm version major --dry-run 2>/dev/null | cut -d'v' -f2 || echo '计算中...')"
|
|
39
|
-
echo ""
|
|
40
|
-
|
|
41
|
-
read -p "请选择 (1-3, 回车默认选择 patch): " choice
|
|
42
|
-
|
|
43
|
-
case ${choice:-1} in
|
|
44
|
-
1|"") version_type="patch" ;;
|
|
45
|
-
2) version_type="minor" ;;
|
|
46
|
-
3) version_type="major" ;;
|
|
47
|
-
*) print_error "无效选择" ;;
|
|
48
|
-
esac
|
|
49
|
-
fi
|
|
50
|
-
|
|
51
|
-
print_info "升级类型: $version_type"
|
|
52
|
-
|
|
53
|
-
# 确认发布
|
|
54
|
-
echo ""
|
|
55
|
-
read -p "确认发布? (y/N): " -n 1 -r
|
|
56
|
-
echo
|
|
57
|
-
[[ ! $REPLY =~ ^[Yy]$ ]] && { print_warning "取消发布"; exit 0; }
|
|
58
|
-
|
|
59
|
-
# 执行发布流程
|
|
60
|
-
print_success "开始发布流程..."
|
|
61
|
-
|
|
62
|
-
# 1. 构建和测试
|
|
63
|
-
print_info "运行构建和代码检查..."
|
|
64
|
-
pnpm run build
|
|
65
|
-
pnpm run lint
|
|
66
|
-
|
|
67
|
-
# 2. 更新版本
|
|
68
|
-
print_info "更新版本号..."
|
|
69
|
-
new_version=$(pnpm version $version_type --no-git-tag-version)
|
|
70
|
-
new_version=${new_version#v}
|
|
71
|
-
|
|
72
|
-
print_success "版本已更新: $current_version → $new_version"
|
|
73
|
-
|
|
74
|
-
# 3. 提交和打标签
|
|
75
|
-
print_info "创建提交和标签..."
|
|
76
|
-
git add .
|
|
77
|
-
git commit -m "chore: 发布版本 v$new_version
|
|
78
|
-
|
|
79
|
-
🚀 快速发布 $version_type 版本
|
|
80
|
-
⏰ $(date '+%Y-%m-%d %H:%M:%S')
|
|
81
|
-
|
|
82
|
-
🤖 Generated with [Claude Code](https://claude.ai/code)
|
|
83
|
-
|
|
84
|
-
Co-Authored-By: Claude <noreply@anthropic.com>"
|
|
85
|
-
|
|
86
|
-
git tag -a "v$new_version" -m "Release v$new_version"
|
|
87
|
-
|
|
88
|
-
# 4. 推送
|
|
89
|
-
print_info "推送到远程仓库..."
|
|
90
|
-
git push origin $(git branch --show-current)
|
|
91
|
-
git push origin "v$new_version"
|
|
92
|
-
|
|
93
|
-
print_success "发布完成!版本 v$new_version 已推送"
|
|
94
|
-
echo ""
|
|
95
|
-
print_info "🔗 相关链接:"
|
|
96
|
-
echo " GitHub Actions: https://github.com/2ue/ccm/actions"
|
|
97
|
-
echo " GitHub Release: https://github.com/2ue/ccm/releases/tag/v$new_version"
|
|
98
|
-
echo ""
|
|
99
|
-
print_info "📦 NPM 包将在 GitHub Actions 完成后发布:"
|
|
100
|
-
echo " https://www.npmjs.com/package/ccman"
|