clouddreamai-cicd-setup 1.0.1 → 1.0.3

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.
@@ -55,22 +55,22 @@ class PromptCollector {
55
55
  console.log('\n🚀 CloudDreamAI CI/CD 自动配置工具\n');
56
56
  // 1. GitLab 配置
57
57
  const gitlabConfig = await this.collectGitLabConfig();
58
- // 2. 项目配置
59
- const projectConfig = await this.collectProjectConfig();
60
- // 3. 服务器配置
58
+ // 2. 镜像仓库配置
59
+ const registryConfig = await this.collectRegistryConfig(gitlabConfig.baseUrl);
60
+ // 3. 项目配置
61
+ const projectConfig = await this.collectProjectConfig(registryConfig);
62
+ // 4. 服务器配置
61
63
  const serverConfig = await this.collectServerConfig();
62
- // 4. Docker Hub 配置
63
- const dockerHubConfig = await this.collectDockerHubConfig();
64
- // 5. SSH 私钥
65
- const sshPrivateKey = await this.collectSSHKey();
64
+ // 5. SSH 密码
65
+ const sshPassword = await this.collectSSHPassword();
66
66
  // 6. 环境变量文件
67
67
  const envFiles = await this.collectEnvFiles();
68
68
  return {
69
69
  gitlab: gitlabConfig,
70
70
  project: projectConfig,
71
71
  server: serverConfig,
72
- dockerHub: dockerHubConfig,
73
- sshPrivateKey,
72
+ registry: registryConfig,
73
+ sshPassword,
74
74
  ...envFiles,
75
75
  };
76
76
  }
@@ -103,10 +103,78 @@ class PromptCollector {
103
103
  ]);
104
104
  return answers;
105
105
  }
106
+ /**
107
+ * 收集镜像仓库配置
108
+ */
109
+ async collectRegistryConfig(gitlabUrl) {
110
+ console.log('\n📦 镜像仓库配置\n');
111
+ const { registryType } = await inquirer_1.default.prompt([
112
+ {
113
+ type: 'list',
114
+ name: 'registryType',
115
+ message: '选择镜像仓库类型:',
116
+ choices: [
117
+ {
118
+ name: 'GitLab Container Registry(推荐,无需额外配置)',
119
+ value: 'gitlab',
120
+ },
121
+ { name: '自建 Docker Registry', value: 'custom' },
122
+ { name: '不使用 Registry(服务器本地构建)', value: 'none' },
123
+ ],
124
+ default: 'gitlab',
125
+ },
126
+ ]);
127
+ // 根据类型收集不同的配置
128
+ if (registryType === 'gitlab') {
129
+ // GitLab Registry 无需额外配置,使用预定义变量
130
+ const registryUrl = gitlabUrl.replace(/^https?:\/\//, '') + ':5050';
131
+ console.log(`\n✅ 将使用 GitLab Container Registry: ${registryUrl}`);
132
+ console.log(' 使用 GitLab CI/CD 预定义变量,无需额外配置\n');
133
+ return {
134
+ type: 'gitlab',
135
+ };
136
+ }
137
+ else if (registryType === 'custom') {
138
+ console.log('\n🏗️ 自建 Registry 配置\n');
139
+ const customConfig = await inquirer_1.default.prompt([
140
+ {
141
+ type: 'input',
142
+ name: 'url',
143
+ message: 'Registry URL (如 registry.example.com:5000):',
144
+ validate: (input) => (input ? true : '请输入 Registry URL'),
145
+ },
146
+ {
147
+ type: 'input',
148
+ name: 'username',
149
+ message: 'Registry 用户名:',
150
+ validate: (input) => (input ? true : '请输入用户名'),
151
+ },
152
+ {
153
+ type: 'input',
154
+ name: 'password',
155
+ message: 'Registry 密码:',
156
+ validate: (input) => (input ? true : '请输入密码'),
157
+ },
158
+ ]);
159
+ return {
160
+ type: 'custom',
161
+ url: customConfig.url,
162
+ username: customConfig.username,
163
+ password: customConfig.password,
164
+ };
165
+ }
166
+ else {
167
+ // none
168
+ console.log('\n⚠️ 不使用镜像仓库,将在服务器上本地构建镜像\n');
169
+ return {
170
+ type: 'none',
171
+ };
172
+ }
173
+ }
106
174
  /**
107
175
  * 收集项目配置
108
176
  */
109
- async collectProjectConfig() {
177
+ async collectProjectConfig(registryConfig) {
110
178
  console.log('\n🔧 项目配置\n');
111
179
  const answers = await inquirer_1.default.prompt([
112
180
  {
@@ -133,32 +201,6 @@ class PromptCollector {
133
201
  { name: 'Node.js 通用', value: 'node' },
134
202
  ],
135
203
  },
136
- {
137
- type: 'input',
138
- name: 'dockerImage',
139
- message: 'Docker Hub 镜像名称 (格式: username/image):',
140
- validate: (input) => {
141
- if (!input)
142
- return '请输入镜像名称';
143
- if (!input.includes('/')) {
144
- return '格式错误,应为 username/image-name';
145
- }
146
- return true;
147
- },
148
- },
149
- {
150
- type: 'input',
151
- name: 'deployDir',
152
- message: '部署目录 (服务器上的绝对路径):',
153
- default: (answers) => `/www/wwwroot/${answers.name}`,
154
- validate: (input) => {
155
- if (!input)
156
- return '请输入部署目录';
157
- if (!input.startsWith('/'))
158
- return '必须是绝对路径';
159
- return true;
160
- },
161
- },
162
204
  {
163
205
  type: 'number',
164
206
  name: 'devPort',
@@ -198,165 +240,168 @@ class PromptCollector {
198
240
  default: '',
199
241
  },
200
242
  ]);
201
- return answers;
202
- }
203
- /**
204
- * 收集服务器配置
205
- */
206
- async collectServerConfig() {
207
- console.log('\n🖥️ 服务器配置\n');
208
- const answers = await inquirer_1.default.prompt([
243
+ // 自动生成部署目录和镜像名称
244
+ const projectName = answers.name;
245
+ answers.deployDir = `/www/wwwroot/${projectName}`;
246
+ answers.dockerImage = registryConfig.type === 'gitlab' ? '' : projectName;
247
+ console.log(`\n✓ 部署目录: ${answers.deployDir}`);
248
+ if (answers.dockerImage) {
249
+ console.log(`✓ 镜像名称: ${answers.dockerImage}\n`);
250
+ }
251
+ else {
252
+ console.log(`✓ 镜像名称: 使用 GitLab 项目路径\n`);
253
+ }
254
+ // 询问是否配置 Nginx 反向代理
255
+ console.log('\n📝 Nginx 反向代理配置(可选)\n');
256
+ const nginxConfig = await inquirer_1.default.prompt([
209
257
  {
210
258
  type: 'confirm',
211
- name: 'singleServer',
212
- message: '是否使用单服务器多环境模式?',
259
+ name: 'configureNginx',
260
+ message: '是否自动配置宝塔 Nginx 反向代理?',
213
261
  default: true,
214
262
  },
215
263
  {
216
264
  type: 'input',
217
- name: 'testServerHost',
218
- message: '测试/开发服务器地址 (IP 或域名):',
219
- validate: (input) => (input ? true : '请输入服务器地址'),
265
+ name: 'devDomain',
266
+ message: '开发环境域名 ( backend-test.example.com):',
267
+ when: (answers) => answers.configureNginx,
268
+ validate: (input) => {
269
+ if (!input)
270
+ return '请输入开发环境域名';
271
+ if (!/^[a-z0-9.-]+$/.test(input)) {
272
+ return '域名只能包含小写字母、数字、点和连字符';
273
+ }
274
+ return true;
275
+ },
220
276
  },
221
277
  {
222
278
  type: 'input',
223
- name: 'prodServerHost',
224
- message: '生产服务器地址 (单服务器模式请输入相同地址):',
225
- default: (answers) => answers.singleServer ? answers.testServerHost : '',
226
- validate: (input) => (input ? true : '请输入服务器地址'),
279
+ name: 'prodDomain',
280
+ message: '生产环境域名 (如 backend.example.com):',
281
+ when: (answers) => answers.configureNginx,
282
+ validate: (input) => {
283
+ if (!input)
284
+ return '请输入生产环境域名';
285
+ if (!/^[a-z0-9.-]+$/.test(input)) {
286
+ return '域名只能包含小写字母、数字、点和连字符';
287
+ }
288
+ return true;
289
+ },
227
290
  },
228
291
  ]);
229
- return answers;
292
+ return { ...answers, ...nginxConfig };
230
293
  }
231
294
  /**
232
- * 收集 Docker Hub 配置
295
+ * 收集服务器配置(默认单服务器模式)
233
296
  */
234
- async collectDockerHubConfig() {
235
- console.log('\n🐳 Docker Hub 配置\n');
297
+ async collectServerConfig() {
298
+ console.log('\n🖥️ 服务器配置\n');
299
+ console.log('ℹ️ 使用单服务器模式(开发和生产环境在同一台服务器)\n');
236
300
  const answers = await inquirer_1.default.prompt([
237
301
  {
238
302
  type: 'input',
239
- name: 'username',
240
- message: 'Docker Hub 用户名:',
241
- validate: (input) => (input ? true : '请输入用户名'),
242
- },
243
- {
244
- type: 'input',
245
- name: 'password',
246
- message: 'Docker Hub 密码或 Access Token:',
247
- validate: (input) => (input ? true : '请输入密码'),
303
+ name: 'testServerHost',
304
+ message: '服务器地址 (IP 或域名):',
305
+ validate: (input) => (input ? true : '请输入服务器地址'),
248
306
  },
249
307
  ]);
250
- return answers;
308
+ // 默认单服务器模式,开发和生产使用同一台服务器
309
+ return {
310
+ singleServer: true,
311
+ testServerHost: answers.testServerHost,
312
+ prodServerHost: answers.testServerHost,
313
+ };
251
314
  }
252
315
  /**
253
- * 收集 SSH 私钥
316
+ * 收集 SSH 密码
254
317
  */
255
- async collectSSHKey() {
256
- console.log('\n🔑 SSH 私钥配置\n');
257
- const { method } = await inquirer_1.default.prompt([
318
+ async collectSSHPassword() {
319
+ console.log('\n🔑 SSH 密码配置\n');
320
+ const { password } = await inquirer_1.default.prompt([
258
321
  {
259
- type: 'list',
260
- name: 'method',
261
- message: '如何提供 SSH 私钥?',
262
- choices: [
263
- { name: '从文件读取', value: 'file' },
264
- { name: '手动粘贴', value: 'paste' },
265
- ],
322
+ type: 'password',
323
+ name: 'password',
324
+ message: '服务器 SSH 密码:',
325
+ validate: (input) => {
326
+ if (!input)
327
+ return '请输入 SSH 密码';
328
+ return true;
329
+ },
266
330
  },
267
331
  ]);
268
- if (method === 'file') {
269
- const { filePath } = await inquirer_1.default.prompt([
270
- {
271
- type: 'input',
272
- name: 'filePath',
273
- message: 'SSH 私钥文件路径:',
274
- default: '~/.ssh/id_rsa',
275
- validate: (input) => {
276
- const expandedPath = input.replace(/^~/, process.env.HOME || '~');
277
- if (!fs.existsSync(expandedPath)) {
278
- return '文件不存在';
279
- }
280
- return true;
281
- },
282
- },
283
- ]);
284
- const expandedPath = filePath.replace(/^~/, process.env.HOME || '~');
285
- return fs.readFileSync(expandedPath, 'utf-8');
286
- }
287
- else {
288
- const { key } = await inquirer_1.default.prompt([
289
- {
290
- type: 'editor',
291
- name: 'key',
292
- message: '请在编辑器中粘贴 SSH 私钥内容 (保存并关闭编辑器):',
293
- validate: (input) => {
294
- if (!input)
295
- return '请提供 SSH 私钥';
296
- if (!input.includes('PRIVATE KEY')) {
297
- return 'SSH 私钥格式不正确';
298
- }
299
- return true;
300
- },
301
- },
302
- ]);
303
- return key;
304
- }
332
+ return password;
305
333
  }
306
334
  /**
307
- * 收集环境变量文件
335
+ * 收集环境变量文件(必需)
308
336
  */
309
337
  async collectEnvFiles() {
310
- console.log('\n📄 环境变量文件配置\n');
311
- const { includeEnvFiles } = await inquirer_1.default.prompt([
312
- {
313
- type: 'confirm',
314
- name: 'includeEnvFiles',
315
- message: '是否需要配置 .env 文件 (开发和生产环境)?',
316
- default: true,
317
- },
318
- ]);
319
- if (!includeEnvFiles) {
320
- return {};
338
+ console.log('\n📄 环境变量文件配置(必需)\n');
339
+ console.log('⚠️ NestJS 项目需要 .env 文件来配置数据库、密钥等信息');
340
+ console.log(' 请确保已创建 .env.dev 和 .env.prod 文件\n');
341
+ // 检查是否存在 .env.example
342
+ const envExampleExists = fs.existsSync('.env.example');
343
+ if (!envExampleExists) {
344
+ console.log('⚠️ 未找到 .env.example 文件');
345
+ console.log(' 建议创建 .env.example 作为环境变量模板\n');
321
346
  }
322
- const { method } = await inquirer_1.default.prompt([
323
- {
324
- type: 'list',
325
- name: 'method',
326
- message: '如何提供 .env 文件?',
327
- choices: [
328
- { name: '从本地文件读取', value: 'file' },
329
- { name: '稍后手动配置', value: 'skip' },
330
- ],
331
- },
332
- ]);
333
- if (method === 'skip') {
334
- console.log('\n⚠️ 跳过 .env 文件配置,请稍后在 GitLab CI/CD 变量中手动添加');
335
- return {};
347
+ // 强制要求提供环境变量文件
348
+ const devEnvFile = await this.readEnvFile('开发环境', '.env.dev', true);
349
+ const prodEnvFile = await this.readEnvFile('生产环境', '.env.prod', true);
350
+ if (!devEnvFile || !prodEnvFile) {
351
+ console.log('\n❌ 环境变量文件配置不完整');
352
+ console.log('请创建以下文件后重新运行:');
353
+ if (!devEnvFile)
354
+ console.log(' - .env.dev');
355
+ if (!prodEnvFile)
356
+ console.log(' - .env.prod');
357
+ console.log('\n提示: 可以从 .env.example 复制并修改\n');
358
+ process.exit(1);
336
359
  }
337
- const devEnvFile = await this.readEnvFile('开发环境', '.env.dev');
338
- const prodEnvFile = await this.readEnvFile('生产环境', '.env.prod');
339
360
  return { devEnvFile, prodEnvFile };
340
361
  }
341
362
  /**
342
363
  * 读取环境变量文件
343
364
  */
344
- async readEnvFile(envName, defaultPath) {
365
+ async readEnvFile(envName, defaultPath, required = false) {
345
366
  const { filePath } = await inquirer_1.default.prompt([
346
367
  {
347
368
  type: 'input',
348
369
  name: 'filePath',
349
- message: `${envName} .env 文件路径 (回车跳过):`,
370
+ message: required
371
+ ? `${envName} .env 文件路径 (必需):`
372
+ : `${envName} .env 文件路径 (回车跳过):`,
350
373
  default: defaultPath,
374
+ validate: (input) => {
375
+ if (required && !input) {
376
+ return '此文件为必需,请提供文件路径';
377
+ }
378
+ if (input && !fs.existsSync(input)) {
379
+ return `文件 ${input} 不存在,请检查路径`;
380
+ }
381
+ return true;
382
+ },
351
383
  },
352
384
  ]);
353
- if (!filePath)
385
+ if (!filePath) {
354
386
  return undefined;
387
+ }
355
388
  if (!fs.existsSync(filePath)) {
389
+ if (required) {
390
+ console.log(`\n❌ 错误: 文件 ${filePath} 不存在`);
391
+ // 如果是默认路径且存在 .env.example,提示用户创建
392
+ if (filePath === defaultPath && fs.existsSync('.env.example')) {
393
+ console.log(`\n提示: 你可以运行以下命令创建文件:`);
394
+ console.log(` cp .env.example ${filePath}`);
395
+ console.log(` 然后编辑 ${filePath} 填写${envName}的配置\n`);
396
+ }
397
+ return undefined;
398
+ }
356
399
  console.log(`⚠️ 文件 ${filePath} 不存在,跳过`);
357
400
  return undefined;
358
401
  }
359
- return fs.readFileSync(filePath, 'utf-8');
402
+ const content = fs.readFileSync(filePath, 'utf-8');
403
+ console.log(`✓ 成功读取 ${filePath} (${content.split('\n').length} 行)`);
404
+ return content;
360
405
  }
361
406
  }
362
407
  exports.PromptCollector = PromptCollector;
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqWH,sDAEC;AArWD,wDAAgC;AAEhC,uCAAyB;AAEzB;;GAEG;AACH,MAAa,eAAe;IAC1B;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAEhD,eAAe;QACf,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEtD,UAAU;QACV,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAExD,WAAW;QACX,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEtD,mBAAmB;QACnB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE5D,YAAY;QACZ,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAEjD,YAAY;QACZ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE9C,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,aAAa;YACtB,MAAM,EAAE,YAAY;YACpB,SAAS,EAAE,eAAe;YAC1B,aAAa;YACb,GAAG,QAAQ;SACZ,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB;QAC/B,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAEhC,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,gBAAgB;gBACzB,OAAO,EAAE,iCAAiC;gBAC1C,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,IAAI,CAAC,KAAK;wBAAE,OAAO,gBAAgB,CAAC;oBACpC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC9B,OAAO,+BAA+B,CAAC;oBACzC,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,+BAA+B;gBACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC;aACzD;SACF,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB;QAChC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAE3B,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,gBAAgB;gBACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,IAAI,CAAC,KAAK;wBAAE,OAAO,SAAS,CAAC;oBAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;wBAChC,OAAO,qBAAqB,CAAC;oBAC/B,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;oBACtC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE;oBAChC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE;oBACpC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE;iBACtC;aACF;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,uCAAuC;gBAChD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,IAAI,CAAC,KAAK;wBAAE,OAAO,SAAS,CAAC;oBAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACzB,OAAO,6BAA6B,CAAC;oBACvC,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,mBAAmB;gBAC5B,OAAO,EAAE,CAAC,OAA+B,EAAE,EAAE,CAC3C,gBAAgB,OAAO,CAAC,IAAI,EAAE;gBAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,IAAI,CAAC,KAAK;wBAAE,OAAO,SAAS,CAAC;oBAC7B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;wBAAE,OAAO,SAAS,CAAC;oBAC7C,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC3B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;wBAC5C,OAAO,kBAAkB,CAAC;oBAC5B,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC3B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;wBAC5C,OAAO,kBAAkB,CAAC;oBAC5B,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,qBAAqB;gBAC9B,OAAO,EAAE,EAAE;aACZ;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,qBAAqB;gBAC9B,OAAO,EAAE,EAAE;aACZ;SACF,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB;QAC/B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAE9B,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,gBAAgB;gBACzB,OAAO,EAAE,IAAI;aACd;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,sBAAsB;gBAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;aACjD;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,0BAA0B;gBACnC,OAAO,EAAE,CAAC,OAAgC,EAAE,EAAE,CAC5C,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;gBACpD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;aACjD;SACF,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,sBAAsB;QAClC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAEpC,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,iBAAiB;gBAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;aAC/C;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,8BAA8B;gBACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;aAC9C;SACF,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa;QACzB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACvC;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,cAAc;gBACvB,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;oBAChC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;iBACjC;aACF;SACF,CAAC,CAAC;QAEH,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBACzC;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,aAAa;oBACtB,OAAO,EAAE,eAAe;oBACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wBAClB,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;wBAClE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;4BACjC,OAAO,OAAO,CAAC;wBACjB,CAAC;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;YACrE,OAAO,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBACpC;oBACE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,+BAA+B;oBACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wBAClB,IAAI,CAAC,KAAK;4BAAE,OAAO,YAAY,CAAC;wBAChC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;4BACnC,OAAO,aAAa,CAAC;wBACvB,CAAC;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC;iBACF;aACF,CAAC,CAAC;YAEH,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe;QAC3B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAE/B,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YAChD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,2BAA2B;gBACpC,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACvC;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,eAAe;gBACxB,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE;oBAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;iBAClC;aACF;SACF,CAAC,CAAC;QAEH,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAC5D,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAEhE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CACvB,OAAe,EACf,WAAmB;QAEnB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACzC;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,GAAG,OAAO,oBAAoB;gBACvC,OAAO,EAAE,WAAW;aACrB;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QAEhC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,UAAU,QAAQ,SAAS,CAAC,CAAC;YACzC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;CACF;AAvVD,0CAuVC;AAED;;GAEG;AACH,SAAgB,qBAAqB;IACnC,OAAO,IAAI,eAAe,EAAE,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * CloudDreamAI CI/CD Setup - 模板生成器
3
3
  * 负责读取模板文件并替换占位符生成最终文件
4
4
  */
5
- import { ProjectConfig, ProjectType } from '../core/types';
5
+ import { ProjectConfig, ProjectType, RegistryType } from '../core/types';
6
6
  /**
7
7
  * 模板生成器
8
8
  */
@@ -12,7 +12,7 @@ export declare class TemplateGenerator {
12
12
  /**
13
13
  * 生成 .gitlab-ci.yml 文件内容
14
14
  */
15
- generateGitLabCI(projectType: ProjectType, config: ProjectConfig, gitlabHost: string): string;
15
+ generateGitLabCI(projectType: ProjectType, config: ProjectConfig, gitlabHost: string, registryType: RegistryType): string;
16
16
  /**
17
17
  * 生成 deploy.sh 脚本内容
18
18
  */
@@ -21,23 +21,31 @@ export declare class TemplateGenerator {
21
21
  * 生成 generate-env.sh 脚本内容
22
22
  */
23
23
  generateEnvScript(config: ProjectConfig): string;
24
+ /**
25
+ * 生成 docker-compose.yml 文件内容
26
+ */
27
+ generateDockerCompose(projectType: ProjectType, config: ProjectConfig): string;
24
28
  /**
25
29
  * 生成所有文件到指定目录
26
30
  */
27
- generateAll(outputDir: string, projectType: ProjectType, config: ProjectConfig, gitlabHost: string): {
31
+ generateAll(outputDir: string, projectType: ProjectType, config: ProjectConfig, gitlabHost: string, registryType: RegistryType): Promise<{
28
32
  success: boolean;
29
33
  files: string[];
30
34
  error?: string;
31
- };
35
+ }>;
32
36
  /**
33
37
  * 替换模板中的占位符
34
38
  * 占位符格式:{{VARIABLE_NAME}}
35
39
  */
36
40
  private replacePlaceholders;
37
41
  /**
38
- * 根据项目类型获取模板名称
42
+ * 根据项目类型和 Registry 类型获取模板名称
39
43
  */
40
44
  private getTemplateNameByType;
45
+ /**
46
+ * 根据项目类型获取 docker-compose 模板名称
47
+ */
48
+ private getDockerComposeTemplate;
41
49
  /**
42
50
  * 根据项目类型获取 lint 命令
43
51
  */
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAqB,MAAM,eAAe,CAAC;AAE9E;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,YAAY,CAAS;;IAO7B;;OAEG;IACH,gBAAgB,CACd,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,GACjB,MAAM;IA6BT;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IAcnD;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IAehD;;OAEG;IACH,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,GACjB;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAmDxD;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;OAEG;IACH,OAAO,CAAC,cAAc;CAUvB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAqB,YAAY,EAAE,MAAM,eAAe,CAAC;AAE5F;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,YAAY,CAAS;;IAO7B;;OAEG;IACH,gBAAgB,CACd,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,YAAY,GACzB,MAAM;IA8BT;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IAgBnD;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IAehD;;OAEG;IACH,qBAAqB,CACnB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,GACpB,MAAM;IAqBT;;OAEG;IACG,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAqFjE;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAWhC;;OAEG;IACH,OAAO,CAAC,cAAc;CAUvB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D"}