speccore 8.3.58 → 8.3.60
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/.agents/skills/spec-deploy/SKILL.md +311 -0
- package/.agents/skills/spec-verify/SKILL.md +226 -0
- package/README.md +60 -3
- package/dist/cli.js +52 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/about.d.ts.map +1 -1
- package/dist/commands/about.js +9 -2
- package/dist/commands/about.js.map +1 -1
- package/dist/commands/build.d.ts +9 -0
- package/dist/commands/build.d.ts.map +1 -0
- package/dist/commands/build.js +180 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/deploy.d.ts +11 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +118 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +2 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/iteration/split.d.ts.map +1 -1
- package/dist/commands/iteration/split.js +28 -0
- package/dist/commands/iteration/split.js.map +1 -1
- package/dist/commands/pipeline.d.ts +10 -0
- package/dist/commands/pipeline.d.ts.map +1 -0
- package/dist/commands/pipeline.js +365 -0
- package/dist/commands/pipeline.js.map +1 -0
- package/dist/commands/pr.d.ts +3 -0
- package/dist/commands/pr.d.ts.map +1 -1
- package/dist/commands/pr.js +218 -0
- package/dist/commands/pr.js.map +1 -1
- package/dist/commands/update-env-configs.d.ts +3 -0
- package/dist/commands/update-env-configs.d.ts.map +1 -0
- package/dist/commands/update-env-configs.js +252 -0
- package/dist/commands/update-env-configs.js.map +1 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +13 -0
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/verify.d.ts +3 -0
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +343 -4
- package/dist/commands/verify.js.map +1 -1
- package/dist/core/deploy/engine.d.ts +25 -0
- package/dist/core/deploy/engine.d.ts.map +1 -0
- package/dist/core/deploy/engine.js +348 -0
- package/dist/core/deploy/engine.js.map +1 -0
- package/dist/core/environment-config.d.ts +61 -0
- package/dist/core/environment-config.d.ts.map +1 -0
- package/dist/core/environment-config.js +178 -0
- package/dist/core/environment-config.js.map +1 -0
- package/dist/core/pipeline-test.d.ts +83 -0
- package/dist/core/pipeline-test.d.ts.map +1 -0
- package/dist/core/pipeline-test.js +467 -0
- package/dist/core/pipeline-test.js.map +1 -0
- package/dist/core/test-config.d.ts +39 -0
- package/dist/core/test-config.d.ts.map +1 -0
- package/dist/core/test-config.js +162 -0
- package/dist/core/test-config.js.map +1 -0
- package/dist/core/ui-verify/spec-generator.d.ts.map +1 -1
- package/dist/core/ui-verify/spec-generator.js +27 -0
- package/dist/core/ui-verify/spec-generator.js.map +1 -1
- package/dist/core/unified-config.d.ts +54 -0
- package/dist/core/unified-config.d.ts.map +1 -1
- package/dist/core/unified-config.js +89 -0
- package/dist/core/unified-config.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/pr.js
CHANGED
|
@@ -85,7 +85,130 @@ async function checkUIVerifyStatus(taskId, iteration) {
|
|
|
85
85
|
return { block: false, message: '⚠️ UI 验证状态文件读取失败,跳过检查' };
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
+
function detectGitPlatformCLI() {
|
|
89
|
+
try {
|
|
90
|
+
(0, child_process_1.execSync)('gh --version', { stdio: 'pipe' });
|
|
91
|
+
return { platform: 'github', cli: 'gh' };
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
// gh 未安装
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
(0, child_process_1.execSync)('glab --version', { stdio: 'pipe' });
|
|
98
|
+
return { platform: 'gitlab', cli: 'glab' };
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// glab 未安装
|
|
102
|
+
}
|
|
103
|
+
return { platform: null, cli: null };
|
|
104
|
+
}
|
|
105
|
+
/** 从 git remote url 判断平台 */
|
|
106
|
+
function detectPlatformFromRemote() {
|
|
107
|
+
try {
|
|
108
|
+
const remote = (0, child_process_1.execSync)('git remote get-url origin', { encoding: 'utf-8', stdio: 'pipe' }).trim();
|
|
109
|
+
if (remote.includes('github.com'))
|
|
110
|
+
return 'github';
|
|
111
|
+
if (remote.includes('gitlab'))
|
|
112
|
+
return 'gitlab';
|
|
113
|
+
if (remote.includes('gitee.com'))
|
|
114
|
+
return 'github'; // gitee 兼容 gh 的部分操作
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
// ignore
|
|
118
|
+
}
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
/** 创建 Pull Request */
|
|
122
|
+
async function createPullRequest(base, title, draft) {
|
|
123
|
+
const { platform, cli } = detectGitPlatformCLI();
|
|
124
|
+
const detected = platform || detectPlatformFromRemote();
|
|
125
|
+
if (!cli) {
|
|
126
|
+
return {
|
|
127
|
+
success: false,
|
|
128
|
+
message: `未检测到 GitHub CLI (gh) 或 GitLab CLI (glab)。\n 请安装对应 CLI 以自动创建 PR:\n • GitHub: https://cli.github.com/\n • GitLab: https://gitlab.com/gitlab-org/cli`,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
try {
|
|
132
|
+
if (detected === 'github' || cli === 'gh') {
|
|
133
|
+
const args = [
|
|
134
|
+
'pr', 'create',
|
|
135
|
+
'--base', base,
|
|
136
|
+
'--title', title,
|
|
137
|
+
'--body', 'Auto PR by SpecCore',
|
|
138
|
+
'--fill',
|
|
139
|
+
];
|
|
140
|
+
if (draft)
|
|
141
|
+
args.push('--draft');
|
|
142
|
+
const result = (0, child_process_1.execSync)(`gh ${args.map((a) => `"${a.replace(/"/g, '\\"')}"`).join(' ')}`, {
|
|
143
|
+
encoding: 'utf-8',
|
|
144
|
+
stdio: 'pipe',
|
|
145
|
+
});
|
|
146
|
+
// gh pr create 会在 stdout 输出 PR URL
|
|
147
|
+
const urlMatch = result.match(/https:\/\/github\.com\/[^\s]+/);
|
|
148
|
+
return { success: true, url: urlMatch ? urlMatch[0] : undefined, message: 'PR 创建成功' };
|
|
149
|
+
}
|
|
150
|
+
if (detected === 'gitlab' || cli === 'glab') {
|
|
151
|
+
const args = [
|
|
152
|
+
'mr', 'create',
|
|
153
|
+
'--target-branch', base,
|
|
154
|
+
'--title', title,
|
|
155
|
+
'--description', 'Auto MR by SpecCore',
|
|
156
|
+
];
|
|
157
|
+
if (draft)
|
|
158
|
+
args.push('--draft');
|
|
159
|
+
const result = (0, child_process_1.execSync)(`glab ${args.map((a) => `"${a.replace(/"/g, '\\"')}"`).join(' ')}`, {
|
|
160
|
+
encoding: 'utf-8',
|
|
161
|
+
stdio: 'pipe',
|
|
162
|
+
});
|
|
163
|
+
const urlMatch = result.match(/https:\/\/[^\s]+\/merge_requests\/\d+/);
|
|
164
|
+
return { success: true, url: urlMatch ? urlMatch[0] : undefined, message: 'MR 创建成功' };
|
|
165
|
+
}
|
|
166
|
+
return { success: false, message: '无法识别 Git 平台类型' };
|
|
167
|
+
}
|
|
168
|
+
catch (e) {
|
|
169
|
+
return { success: false, message: `创建 PR 失败: ${e.message || e}` };
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/** 合并 Pull Request */
|
|
173
|
+
async function mergePullRequest(auto) {
|
|
174
|
+
const { platform, cli } = detectGitPlatformCLI();
|
|
175
|
+
if (!cli) {
|
|
176
|
+
return {
|
|
177
|
+
success: false,
|
|
178
|
+
message: '未检测到 gh 或 glab CLI,无法自动合并',
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
try {
|
|
182
|
+
if (cli === 'gh') {
|
|
183
|
+
const args = ['pr', 'merge', '--squash', '--delete-branch'];
|
|
184
|
+
if (auto)
|
|
185
|
+
args.push('--auto');
|
|
186
|
+
(0, child_process_1.execSync)(`gh ${args.join(' ')}`, { stdio: 'pipe' });
|
|
187
|
+
return { success: true, message: auto ? '已启用自动合并' : 'PR 已合并' };
|
|
188
|
+
}
|
|
189
|
+
if (cli === 'glab') {
|
|
190
|
+
(0, child_process_1.execSync)('glab mr merge --squash --remove-source-branch', { stdio: 'pipe' });
|
|
191
|
+
return { success: true, message: 'MR 已合并' };
|
|
192
|
+
}
|
|
193
|
+
return { success: false, message: '无法识别 Git 平台类型' };
|
|
194
|
+
}
|
|
195
|
+
catch (e) {
|
|
196
|
+
return { success: false, message: `合并失败: ${e.message || e}` };
|
|
197
|
+
}
|
|
198
|
+
}
|
|
88
199
|
async function prCommand(options) {
|
|
200
|
+
// ── 独立合并模式 ──
|
|
201
|
+
if (options.merge && !options.force && !options.response && !options.prompt) {
|
|
202
|
+
const result = await mergePullRequest(options.autoMerge);
|
|
203
|
+
if (result.success) {
|
|
204
|
+
logger_1.logger.success(`✅ ${result.message}`);
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
logger_1.logger.error(`❌ ${result.message}`);
|
|
208
|
+
process.exitCode = 1;
|
|
209
|
+
}
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
89
212
|
// ── Prompt 模式:输出分析 Prompt 给 AI ──
|
|
90
213
|
if (options.prompt) {
|
|
91
214
|
const iter = options.iteration || await (0, context_1.getDefaultIteration)();
|
|
@@ -223,13 +346,44 @@ async function prCommand(options) {
|
|
|
223
346
|
logger_1.logger.success(`✅ 已提交: ${commitMsg}`);
|
|
224
347
|
// 推送
|
|
225
348
|
const branch = (0, child_process_1.execSync)('git branch --show-current', { encoding: 'utf-8' }).trim();
|
|
349
|
+
let pushed = false;
|
|
226
350
|
if (!(0, git_integration_1.isProtectedBranch)(branch)) {
|
|
227
351
|
(0, child_process_1.execSync)(`git push -u origin "${branch}"`, { stdio: 'pipe' });
|
|
228
352
|
logger_1.logger.success(`✅ 已推送: ${branch}`);
|
|
353
|
+
pushed = true;
|
|
229
354
|
}
|
|
230
355
|
else {
|
|
231
356
|
logger_1.logger.info(`ℹ️ ${branch} 为保护分支,跳过推送(请通过 PR 合并)`);
|
|
232
357
|
}
|
|
358
|
+
// 自动创建 PR
|
|
359
|
+
if ((options.createPr || options.autoMerge) && pushed) {
|
|
360
|
+
const prResult = await createPullRequest(options.base || 'main', options.title || commitMsg, options.draft);
|
|
361
|
+
if (prResult.success) {
|
|
362
|
+
logger_1.logger.success(`✅ ${prResult.message}${prResult.url ? ': ' + prResult.url : ''}`);
|
|
363
|
+
if (options.autoMerge) {
|
|
364
|
+
const mergeResult = await mergePullRequest(true);
|
|
365
|
+
if (mergeResult.success) {
|
|
366
|
+
logger_1.logger.success(`✅ ${mergeResult.message}`);
|
|
367
|
+
}
|
|
368
|
+
else {
|
|
369
|
+
logger_1.logger.warn(`⚠️ ${mergeResult.message}`);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
else {
|
|
374
|
+
logger_1.logger.warn(`⚠️ ${prResult.message}`);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
// 独立合并(仅 merge,不创建 PR)
|
|
378
|
+
if (options.merge && !options.createPr && !options.autoMerge) {
|
|
379
|
+
const mergeResult = await mergePullRequest(false);
|
|
380
|
+
if (mergeResult.success) {
|
|
381
|
+
logger_1.logger.success(`✅ ${mergeResult.message}`);
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
logger_1.logger.warn(`⚠️ ${mergeResult.message}`);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
233
387
|
// 输出结果
|
|
234
388
|
process.stdout.write(`[SPECCORE_RESULT]\n${JSON.stringify({ committed: true, message: commitMsg, branch, analysisMatch })}\n[/SPECCORE_RESULT]`);
|
|
235
389
|
}
|
|
@@ -267,10 +421,12 @@ async function prCommand(options) {
|
|
|
267
421
|
return;
|
|
268
422
|
}
|
|
269
423
|
const branch = (0, child_process_1.execSync)('git branch --show-current', { encoding: 'utf-8' }).trim();
|
|
424
|
+
let pushed = false;
|
|
270
425
|
if (!(0, git_integration_1.isProtectedBranch)(branch)) {
|
|
271
426
|
try {
|
|
272
427
|
(0, child_process_1.execSync)(`git push -u origin "${branch}"`, { stdio: 'pipe' });
|
|
273
428
|
logger_1.logger.success(`✅ 已推送: ${branch}`);
|
|
429
|
+
pushed = true;
|
|
274
430
|
}
|
|
275
431
|
catch {
|
|
276
432
|
logger_1.logger.info(`ℹ️ 推送跳过(远程可能不存在)`);
|
|
@@ -279,6 +435,36 @@ async function prCommand(options) {
|
|
|
279
435
|
else {
|
|
280
436
|
logger_1.logger.info(`ℹ️ ${branch} 为保护分支,跳过推送(请通过 PR 合并)`);
|
|
281
437
|
}
|
|
438
|
+
// 自动创建 PR / 合并
|
|
439
|
+
if ((options.createPr || options.autoMerge) && pushed) {
|
|
440
|
+
const base = options.base || 'main';
|
|
441
|
+
const title = options.title || msg;
|
|
442
|
+
const prResult = await createPullRequest(base, title, options.draft);
|
|
443
|
+
if (prResult.success) {
|
|
444
|
+
logger_1.logger.success(`✅ ${prResult.message}${prResult.url ? ': ' + prResult.url : ''}`);
|
|
445
|
+
if (options.autoMerge) {
|
|
446
|
+
const mergeResult = await mergePullRequest(true);
|
|
447
|
+
if (mergeResult.success) {
|
|
448
|
+
logger_1.logger.success(`✅ ${mergeResult.message}`);
|
|
449
|
+
}
|
|
450
|
+
else {
|
|
451
|
+
logger_1.logger.warn(`⚠️ ${mergeResult.message}`);
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
else {
|
|
456
|
+
logger_1.logger.warn(`⚠️ ${prResult.message}`);
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
if (options.merge && !options.createPr && !options.autoMerge) {
|
|
460
|
+
const mergeResult = await mergePullRequest(false);
|
|
461
|
+
if (mergeResult.success) {
|
|
462
|
+
logger_1.logger.success(`✅ ${mergeResult.message}`);
|
|
463
|
+
}
|
|
464
|
+
else {
|
|
465
|
+
logger_1.logger.warn(`⚠️ ${mergeResult.message}`);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
282
468
|
return;
|
|
283
469
|
}
|
|
284
470
|
// ── CLI 默认模式:交互式提交 ──
|
|
@@ -365,13 +551,45 @@ async function prCommand(options) {
|
|
|
365
551
|
logger_1.logger.success(`✅ 已提交: ${msg}`);
|
|
366
552
|
if (pushAns === 'y') {
|
|
367
553
|
const currentBranch = (0, child_process_1.execSync)('git branch --show-current', { encoding: 'utf-8' }).trim();
|
|
554
|
+
let pushed = false;
|
|
368
555
|
if (!(0, git_integration_1.isProtectedBranch)(currentBranch)) {
|
|
369
556
|
(0, child_process_1.execSync)(`git push -u origin "${currentBranch}"`, { stdio: 'pipe' });
|
|
370
557
|
logger_1.logger.success(`✅ 已推送: ${currentBranch}`);
|
|
558
|
+
pushed = true;
|
|
371
559
|
}
|
|
372
560
|
else {
|
|
373
561
|
logger_1.logger.info(`ℹ️ ${currentBranch} 为保护分支,跳过推送(请通过 PR 合并)`);
|
|
374
562
|
}
|
|
563
|
+
// 自动创建 PR / 合并
|
|
564
|
+
if ((options.createPr || options.autoMerge) && pushed) {
|
|
565
|
+
const base = options.base || 'main';
|
|
566
|
+
const title = options.title || msg;
|
|
567
|
+
const prResult = await createPullRequest(base, title, options.draft);
|
|
568
|
+
if (prResult.success) {
|
|
569
|
+
logger_1.logger.success(`✅ ${prResult.message}${prResult.url ? ': ' + prResult.url : ''}`);
|
|
570
|
+
if (options.autoMerge) {
|
|
571
|
+
const mergeResult = await mergePullRequest(true);
|
|
572
|
+
if (mergeResult.success) {
|
|
573
|
+
logger_1.logger.success(`✅ ${mergeResult.message}`);
|
|
574
|
+
}
|
|
575
|
+
else {
|
|
576
|
+
logger_1.logger.warn(`⚠️ ${mergeResult.message}`);
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
else {
|
|
581
|
+
logger_1.logger.warn(`⚠️ ${prResult.message}`);
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
if (options.merge && !options.createPr && !options.autoMerge) {
|
|
585
|
+
const mergeResult = await mergePullRequest(false);
|
|
586
|
+
if (mergeResult.success) {
|
|
587
|
+
logger_1.logger.success(`✅ ${mergeResult.message}`);
|
|
588
|
+
}
|
|
589
|
+
else {
|
|
590
|
+
logger_1.logger.warn(`⚠️ ${mergeResult.message}`);
|
|
591
|
+
}
|
|
592
|
+
}
|
|
375
593
|
}
|
|
376
594
|
else {
|
|
377
595
|
logger_1.logger.info('📌 仅提交到本地,未推送');
|
package/dist/commands/pr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-env-configs.d.ts","sourceRoot":"","sources":["../../src/commands/update-env-configs.ts"],"names":[],"mappings":"AA4OA,wBAAwB;AACxB,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAyBnF"}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initEnvironmentConfigs = initEnvironmentConfigs;
|
|
4
|
+
/**
|
|
5
|
+
* update-env-configs — update 时初始化/升级环境配置
|
|
6
|
+
*
|
|
7
|
+
* v8.3.60+
|
|
8
|
+
*/
|
|
9
|
+
const path_1 = require("path");
|
|
10
|
+
const fs_extra_1 = require("fs-extra");
|
|
11
|
+
const logger_1 = require("../utils/logger");
|
|
12
|
+
const ENV_TEMPLATES = [
|
|
13
|
+
{
|
|
14
|
+
name: 'local',
|
|
15
|
+
branch: '',
|
|
16
|
+
purpose: '本地开发调试',
|
|
17
|
+
buildCmd: 'npm run build:dev',
|
|
18
|
+
baseUrl: 'http://localhost:3000',
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: 'dev',
|
|
22
|
+
branch: 'develop',
|
|
23
|
+
purpose: '开发联调环境',
|
|
24
|
+
buildCmd: 'npm run build:dev',
|
|
25
|
+
baseUrl: 'https://dev.example.com',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: 'test',
|
|
29
|
+
branch: 'release/test',
|
|
30
|
+
purpose: '测试环境 / QA / SIT',
|
|
31
|
+
buildCmd: 'npm run build:test',
|
|
32
|
+
baseUrl: 'https://test.example.com',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: 'staging',
|
|
36
|
+
branch: 'staging',
|
|
37
|
+
purpose: '预发布 / 准生产环境',
|
|
38
|
+
buildCmd: 'npm run build:staging',
|
|
39
|
+
baseUrl: 'https://staging.example.com',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'production',
|
|
43
|
+
branch: 'main',
|
|
44
|
+
purpose: '线上生产环境',
|
|
45
|
+
buildCmd: 'npm run build:prod',
|
|
46
|
+
baseUrl: 'https://www.example.com',
|
|
47
|
+
},
|
|
48
|
+
];
|
|
49
|
+
function generateEnvContent(t) {
|
|
50
|
+
const branchComment = t.branch
|
|
51
|
+
? `# pipeline 执行时会自动将当前分支合并到此分支,然后 build+deploy`
|
|
52
|
+
: `# 本地通常直接在 feature 分支开发,不指定合并目标`;
|
|
53
|
+
return `# =============================================================================
|
|
54
|
+
# SpecCore 环境配置 — ${t.name}(${t.purpose})
|
|
55
|
+
# =============================================================================
|
|
56
|
+
# 支持任意数量的环境,复制本文件修改 env 和 branch 即可新建环境。
|
|
57
|
+
# 典型工作流:
|
|
58
|
+
# speccore build --env ${t.name} --platform h5
|
|
59
|
+
# speccore deploy --env ${t.name} --platform h5
|
|
60
|
+
# speccore pipeline --env ${t.name} --all
|
|
61
|
+
# =============================================================================
|
|
62
|
+
|
|
63
|
+
env: ${t.name}
|
|
64
|
+
|
|
65
|
+
# 该环境对应的 Git 目标分支
|
|
66
|
+
${branchComment}
|
|
67
|
+
${t.branch ? `branch: ${t.branch}` : '# branch: (未配置,pipeline 不会执行 merge)'}
|
|
68
|
+
|
|
69
|
+
# 全局默认值
|
|
70
|
+
defaults:
|
|
71
|
+
build_cmd: ${t.buildCmd}
|
|
72
|
+
|
|
73
|
+
# 按端覆盖配置
|
|
74
|
+
platforms:
|
|
75
|
+
# 前端示例:H5 移动端 → S3/CDN
|
|
76
|
+
h5:
|
|
77
|
+
build_cmd: ${t.buildCmd}
|
|
78
|
+
deploy:
|
|
79
|
+
type: static
|
|
80
|
+
output_dir: dist
|
|
81
|
+
target: s3://mybucket-${t.name}/h5/
|
|
82
|
+
|
|
83
|
+
# 前端示例:Admin 管理后台 → Nginx 服务器
|
|
84
|
+
admin-web:
|
|
85
|
+
build_cmd: ${t.buildCmd}
|
|
86
|
+
deploy:
|
|
87
|
+
type: ssh
|
|
88
|
+
output_dir: dist
|
|
89
|
+
host: deploy@${t.name === 'production' ? 'prod' : t.name}-server.example.com:22
|
|
90
|
+
remote_dir: /usr/share/nginx/html/admin/
|
|
91
|
+
key: ~/.ssh/deploy_key
|
|
92
|
+
post_deploy:
|
|
93
|
+
- ssh deploy@${t.name === 'production' ? 'prod' : t.name}-server.example.com "sudo nginx -s reload"
|
|
94
|
+
|
|
95
|
+
# 后端示例:Java API 服务 → Docker
|
|
96
|
+
order-api:
|
|
97
|
+
build_cmd: ./mvnw package -DskipTests -P${t.name === 'local' ? 'dev' : t.name}
|
|
98
|
+
deploy:
|
|
99
|
+
type: docker
|
|
100
|
+
registry: registry.example.com/myapp-${t.name === 'production' ? 'prod' : t.name}
|
|
101
|
+
image: order-service
|
|
102
|
+
tag: ${t.name === 'production' ? 'prod' : t.name}
|
|
103
|
+
|
|
104
|
+
# 后端示例:Node.js 服务 → PM2
|
|
105
|
+
notification-service:
|
|
106
|
+
build_cmd: npm run build
|
|
107
|
+
deploy:
|
|
108
|
+
type: pm2
|
|
109
|
+
output_dir: .
|
|
110
|
+
pm2_config: ecosystem.config.js
|
|
111
|
+
# 如需远程部署,取消注释:
|
|
112
|
+
# host: deploy@server.example.com
|
|
113
|
+
# remote_dir: /opt/services/notification
|
|
114
|
+
|
|
115
|
+
# 后端示例:Go 网关 → K8s
|
|
116
|
+
gateway:
|
|
117
|
+
build_cmd: go build -o bin/gateway ./cmd/gateway
|
|
118
|
+
deploy:
|
|
119
|
+
type: k8s
|
|
120
|
+
target: ${t.name}
|
|
121
|
+
script: k8s/gateway-deployment.yaml
|
|
122
|
+
|
|
123
|
+
# 后端示例:Python 处理 → 脚本部署
|
|
124
|
+
data-processor:
|
|
125
|
+
build_cmd: pip install -r requirements.txt -t dist/
|
|
126
|
+
deploy:
|
|
127
|
+
type: script
|
|
128
|
+
script: ./scripts/deploy-processor.sh
|
|
129
|
+
|
|
130
|
+
# 后端示例:用户服务 → Helm
|
|
131
|
+
user-service:
|
|
132
|
+
build_cmd: ./mvnw package -DskipTests -P${t.name}
|
|
133
|
+
deploy:
|
|
134
|
+
type: helm
|
|
135
|
+
target: ${t.name}
|
|
136
|
+
script: ./helm/user-service
|
|
137
|
+
output_dir: values-${t.name}.yaml
|
|
138
|
+
|
|
139
|
+
# 后端示例:定时任务 → SFTP 到服务器
|
|
140
|
+
scheduler:
|
|
141
|
+
build_cmd: go build -o bin/scheduler ./cmd/scheduler
|
|
142
|
+
deploy:
|
|
143
|
+
type: sftp
|
|
144
|
+
output_dir: bin
|
|
145
|
+
host: deploy@server.example.com
|
|
146
|
+
remote_dir: /opt/services/scheduler/
|
|
147
|
+
key: ~/.ssh/deploy_key
|
|
148
|
+
|
|
149
|
+
# 后端示例:WebSocket 服务 → 函数计算
|
|
150
|
+
ws-handler:
|
|
151
|
+
build_cmd: npm run build
|
|
152
|
+
deploy:
|
|
153
|
+
type: serverless
|
|
154
|
+
provider: aliyun-fc
|
|
155
|
+
target: ws-handler-${t.name}
|
|
156
|
+
|
|
157
|
+
# 测试相关配置(与 verify --config 联动)
|
|
158
|
+
tests:
|
|
159
|
+
base_urls:
|
|
160
|
+
h5: ${t.baseUrl}/h5
|
|
161
|
+
admin: ${t.baseUrl}/admin
|
|
162
|
+
order-api: ${t.baseUrl.replace('www.', 'api-').replace('https://', 'https://api-')}
|
|
163
|
+
|
|
164
|
+
visual_model:
|
|
165
|
+
provider: qwen-vl
|
|
166
|
+
model: qwen-vl-max
|
|
167
|
+
timeout: 60000
|
|
168
|
+
|
|
169
|
+
# 分层测试配置(v8.3.60+)
|
|
170
|
+
# 与 speccore verify --stage <stage> 联动,不同阶段自动加载对应测试场景。
|
|
171
|
+
# 也可直接运行: speccore verify --config .speccore/tests/smoke.yaml --env-file ${t.name}
|
|
172
|
+
stages:
|
|
173
|
+
# 开发阶段:编译 + Lint + 单元测试(无需外部服务)
|
|
174
|
+
dev:
|
|
175
|
+
config: null # 使用内置代码质量验证
|
|
176
|
+
# PR 阶段:代码质量 + 关键页面冒烟 + API 契约
|
|
177
|
+
pr:
|
|
178
|
+
config: .speccore/tests/pr.yaml
|
|
179
|
+
# 部署阶段:仅冒烟测试(快速门禁)
|
|
180
|
+
deploy:
|
|
181
|
+
config: .speccore/tests/smoke.yaml
|
|
182
|
+
# 发布阶段:全量回归
|
|
183
|
+
release:
|
|
184
|
+
config: .speccore/tests/release.yaml
|
|
185
|
+
|
|
186
|
+
# Pipeline 测试配置(v8.3.60+)
|
|
187
|
+
# 在 build 之后、deploy 之前/之后执行测试,失败按严重程度决定是否阻断部署。
|
|
188
|
+
#
|
|
189
|
+
# 推荐的分层 Pipeline 测试策略:
|
|
190
|
+
# ┌─────────────────────────────────────────────────────────────┐
|
|
191
|
+
# │ pre-deploy (build 后 deploy 前) │
|
|
192
|
+
# │ • build-check: 构建产物检查(快速、必做) │
|
|
193
|
+
# │ • smoke: HTTP 可达性(推荐,验证服务已启动) │
|
|
194
|
+
# │ • type=smoke + stage=pre-deploy → 部署前快速门禁 │
|
|
195
|
+
# ├─────────────────────────────────────────────────────────────┤
|
|
196
|
+
# │ post-deploy (deploy 后) │
|
|
197
|
+
# │ • visual: 视觉回归(已上线,只报告不阻断) │
|
|
198
|
+
# │ • api: API 契约验证 │
|
|
199
|
+
# │ • type=all + stage=post-deploy → 部署后验收 │
|
|
200
|
+
# ├─────────────────────────────────────────────────────────────┤
|
|
201
|
+
# │ both (前后都测) │
|
|
202
|
+
# │ • pre: build-check + smoke │
|
|
203
|
+
# │ • post: visual + api │
|
|
204
|
+
# │ → 最完整的质量闭环,但耗时较长 │
|
|
205
|
+
# └─────────────────────────────────────────────────────────────┘
|
|
206
|
+
#
|
|
207
|
+
# 严重程度分级:
|
|
208
|
+
# - critical(严重): build-check 失败、HTTP 5xx/连接失败 → 必须阻断
|
|
209
|
+
# - warning(警告): visual 差异、api 契约差异、HTTP 404 → 自动修复模式下先部署后修复
|
|
210
|
+
pipeline:
|
|
211
|
+
test:
|
|
212
|
+
# 是否启用 pipeline 内置测试(默认 false)
|
|
213
|
+
enabled: false
|
|
214
|
+
# 测试类型: build-check / smoke / visual / api / all
|
|
215
|
+
type: build-check
|
|
216
|
+
# 测试时机: pre-deploy(部署前,默认) / post-deploy(部署后) / both(前后都测)
|
|
217
|
+
stage: pre-deploy
|
|
218
|
+
# 自定义测试场景配置文件路径(可选)
|
|
219
|
+
# config: ./tests/pipeline-${t.name}.yaml
|
|
220
|
+
# 测试失败是否阻断 deploy(默认 true,仅对 critical 生效)
|
|
221
|
+
fail_on_error: true
|
|
222
|
+
# 测试失败时是否输出 AI 自动修复标记(默认 true)
|
|
223
|
+
auto_fix: true
|
|
224
|
+
# 自动修复最大重试次数
|
|
225
|
+
max_retries: 3
|
|
226
|
+
`;
|
|
227
|
+
}
|
|
228
|
+
/** update 时初始化环境配置目录 */
|
|
229
|
+
async function initEnvironmentConfigs(projectRoot) {
|
|
230
|
+
const envDir = (0, path_1.join)(projectRoot, '.speccore', 'environments');
|
|
231
|
+
await (0, fs_extra_1.ensureDir)(envDir);
|
|
232
|
+
const files = await (0, fs_extra_1.readdir)(envDir);
|
|
233
|
+
const hasYaml = files.some((f) => f.endsWith('.yaml') || f.endsWith('.yml'));
|
|
234
|
+
const created = [];
|
|
235
|
+
if (!hasYaml) {
|
|
236
|
+
logger_1.logger.info(' 📦 初始化默认环境配置...');
|
|
237
|
+
for (const t of ENV_TEMPLATES) {
|
|
238
|
+
const filePath = (0, path_1.join)(envDir, `${t.name}.yaml`);
|
|
239
|
+
await (0, fs_extra_1.writeFile)(filePath, generateEnvContent(t), 'utf-8');
|
|
240
|
+
created.push(`.speccore/environments/${t.name}.yaml`);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
// 已有环境配置,仅更新示例文件
|
|
245
|
+
const examplePath = (0, path_1.join)(envDir, 'staging.yaml.example');
|
|
246
|
+
const exampleContent = generateEnvContent(ENV_TEMPLATES[2]) + '\n# 本文件为示例,可复制为 staging.yaml 后修改使用\n';
|
|
247
|
+
await (0, fs_extra_1.writeFile)(examplePath, exampleContent, 'utf-8');
|
|
248
|
+
created.push('.speccore/environments/staging.yaml.example');
|
|
249
|
+
}
|
|
250
|
+
return created;
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=update-env-configs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-env-configs.js","sourceRoot":"","sources":["../../src/commands/update-env-configs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AA8BA,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwU9F"}
|
package/dist/commands/update.js
CHANGED
|
@@ -44,6 +44,7 @@ const logger_1 = require("../utils/logger");
|
|
|
44
44
|
const package_json_1 = require("../../package.json");
|
|
45
45
|
const init_1 = require("./init");
|
|
46
46
|
const unified_config_1 = require("../core/unified-config");
|
|
47
|
+
const update_env_configs_1 = require("./update-env-configs");
|
|
47
48
|
// ── 当前版本的命令列表统一从 init.ts 导入(单一事实来源)──
|
|
48
49
|
// 避免 init.ts 与 update.ts 的命令列表不一致导致清理误删
|
|
49
50
|
const ALL_COMMANDS = init_1.TOOL_COMMANDS;
|
|
@@ -228,6 +229,12 @@ async function updateCommand(options) {
|
|
|
228
229
|
}
|
|
229
230
|
}
|
|
230
231
|
catch { }
|
|
232
|
+
// v8.3.60+: 初始化/升级环境配置
|
|
233
|
+
let envConfigCreated = [];
|
|
234
|
+
try {
|
|
235
|
+
envConfigCreated = await (0, update_env_configs_1.initEnvironmentConfigs)(projectRoot);
|
|
236
|
+
}
|
|
237
|
+
catch { }
|
|
231
238
|
// 4d. 清理旧版本残留的命令文件和 Skill 目录
|
|
232
239
|
const skillNames = (await require('fs-extra').readdir(skillsSrc)).filter((f) => !f.startsWith('.'));
|
|
233
240
|
await cleanupStaleFiles(projectRoot, ALL_COMMANDS, skillNames);
|
|
@@ -262,6 +269,12 @@ async function updateCommand(options) {
|
|
|
262
269
|
logger_1.logger.info(' ✅ .speccore/COMMANDS/ — 命令模板库');
|
|
263
270
|
logger_1.logger.info(' ✅ .speccore/SKILLS/ — 可复用技能库');
|
|
264
271
|
logger_1.logger.info(' ✅ .speccore/HOOKS/ — 生命周期钩子库');
|
|
272
|
+
if (envConfigCreated.length > 0) {
|
|
273
|
+
logger_1.logger.info(' ✅ .speccore/environments/ — 环境配置');
|
|
274
|
+
for (const f of envConfigCreated) {
|
|
275
|
+
logger_1.logger.info(` + ${f}`);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
265
278
|
logger_1.logger.info('');
|
|
266
279
|
// 全面升级问题报告(过滤 update 自动修复的问题)
|
|
267
280
|
// missing-dir / missing-file 由 update 流程自动创建,不在报告中重复提示
|