clouddreamai-cicd-setup 1.2.0 → 1.4.0

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/dist/cli.js CHANGED
@@ -66,9 +66,39 @@ program
66
66
  .action(async (options) => {
67
67
  try {
68
68
  console.log(chalk_1.default.bold.cyan('\n🚀 CloudDreamAI CI/CD 自动配置工具\n'));
69
+ // 导入 inquirer
70
+ const inquirer = (await Promise.resolve().then(() => __importStar(require('inquirer')))).default;
69
71
  // 1. 收集配置信息
70
72
  const collector = (0, prompts_1.createPromptCollector)();
71
73
  const config = await collector.collectConfig();
74
+ // 显示配置摘要
75
+ console.log(chalk_1.default.bold.cyan('\n📋 配置摘要'));
76
+ console.log(chalk_1.default.gray('='.repeat(50)));
77
+ console.log(chalk_1.default.white(`项目名称: ${config.project.name}`));
78
+ console.log(chalk_1.default.white(`项目类型: ${config.project.type}`));
79
+ console.log(chalk_1.default.white(`部署目录: ${config.project.deployDir}`));
80
+ console.log(chalk_1.default.white(`开发端口: ${config.project.devPort}`));
81
+ console.log(chalk_1.default.white(`生产端口: ${config.project.prodPort}`));
82
+ console.log(chalk_1.default.white(`服务器地址: ${config.server.testServerHost}`));
83
+ if (config.project.devDomain) {
84
+ console.log(chalk_1.default.white(`开发域名: ${config.project.devDomain}`));
85
+ }
86
+ if (config.project.prodDomain) {
87
+ console.log(chalk_1.default.white(`生产域名: ${config.project.prodDomain}`));
88
+ }
89
+ console.log(chalk_1.default.gray('='.repeat(50)));
90
+ const { continueSetup } = await inquirer.prompt([
91
+ {
92
+ type: 'confirm',
93
+ name: 'continueSetup',
94
+ message: '确认以上配置并继续?',
95
+ default: true,
96
+ },
97
+ ]);
98
+ if (!continueSetup) {
99
+ console.log(chalk_1.default.yellow('\n⚠️ 已取消配置\n'));
100
+ return;
101
+ }
72
102
  // 2. 测试 GitLab 连接
73
103
  const spinner = (0, ora_1.default)('正在测试 GitLab 连接...').start();
74
104
  const gitlabClient = (0, gitlab_client_1.createGitLabClient)(config.gitlab);
@@ -110,7 +140,6 @@ program
110
140
  return;
111
141
  }
112
142
  // 4. 搜索项目
113
- const inquirer = (await Promise.resolve().then(() => __importStar(require('inquirer')))).default;
114
143
  let selectedProject = null;
115
144
  while (!selectedProject) {
116
145
  const { searchKeyword } = await inquirer.prompt([
@@ -172,6 +201,27 @@ program
172
201
  // 显示变量摘要
173
202
  console.log(chalk_1.default.cyan('\nCI/CD 变量摘要:'));
174
203
  console.log(chalk_1.default.gray(variableConfigurator.getVariableSummary(variables)));
204
+ // 检测变量冲突
205
+ spinner.start('检测已存在的变量...');
206
+ const existingVarsResult = await gitlabClient.listVariables(selectedProject);
207
+ if (existingVarsResult.success && existingVarsResult.data) {
208
+ const existingKeys = existingVarsResult.data.map(v => v.key);
209
+ const newKeys = variables.map(v => v.key);
210
+ const conflictKeys = newKeys.filter(k => existingKeys.includes(k));
211
+ if (conflictKeys.length > 0) {
212
+ spinner.stop();
213
+ console.log(chalk_1.default.yellow(`\n⚠️ 以下变量已存在,将被覆盖:`));
214
+ conflictKeys.forEach(key => {
215
+ console.log(chalk_1.default.yellow(` - ${key}`));
216
+ });
217
+ }
218
+ else {
219
+ spinner.succeed(chalk_1.default.green('未发现变量冲突'));
220
+ }
221
+ }
222
+ else {
223
+ spinner.warn('无法获取已存在的变量列表');
224
+ }
175
225
  // 确认上传
176
226
  const { confirm } = await inquirer.prompt([
177
227
  {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,18 @@ export declare class TemplateGenerator {
25
25
  * 生成 docker-compose.yml 文件内容
26
26
  */
27
27
  generateDockerCompose(projectType: ProjectType, config: ProjectConfig): string;
28
+ /**
29
+ * 生成 Dockerfile 文件内容
30
+ */
31
+ generateDockerfile(projectType: ProjectType, config: ProjectConfig): string;
32
+ /**
33
+ * 生成 .dockerignore 文件内容
34
+ */
35
+ generateDockerignore(): string;
36
+ /**
37
+ * 备份文件(如果存在)
38
+ */
39
+ private backupFile;
28
40
  /**
29
41
  * 生成所有文件到指定目录
30
42
  */
@@ -46,6 +58,10 @@ export declare class TemplateGenerator {
46
58
  * 根据项目类型获取 docker-compose 模板名称
47
59
  */
48
60
  private getDockerComposeTemplate;
61
+ /**
62
+ * 根据项目类型获取 Dockerfile 模板名称
63
+ */
64
+ private getDockerfileTemplate;
49
65
  /**
50
66
  * 根据项目类型获取 lint 命令
51
67
  */
@@ -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,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"}
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;IACH,kBAAkB,CAChB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,GACpB,MAAM;IAoBT;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAK9B;;OAEG;IACH,OAAO,CAAC,UAAU;IAQlB;;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;IA0GjE;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAWhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;OAEG;IACH,OAAO,CAAC,cAAc;CAUvB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D"}
@@ -117,12 +117,45 @@ class TemplateGenerator {
117
117
  };
118
118
  return this.replacePlaceholders(template, variables);
119
119
  }
120
+ /**
121
+ * 生成 Dockerfile 文件内容
122
+ */
123
+ generateDockerfile(projectType, config) {
124
+ // 根据项目类型选择模板
125
+ const templateName = this.getDockerfileTemplate(projectType);
126
+ const templatePath = path.join(this.templatesDir, 'dockerfile', `${templateName}.Dockerfile`);
127
+ // 读取模板
128
+ const template = fs.readFileSync(templatePath, 'utf-8');
129
+ // 准备替换变量(使用生产端口作为默认端口)
130
+ const variables = {
131
+ APP_PORT: config.prodPort.toString(),
132
+ };
133
+ return this.replacePlaceholders(template, variables);
134
+ }
135
+ /**
136
+ * 生成 .dockerignore 文件内容
137
+ */
138
+ generateDockerignore() {
139
+ const templatePath = path.join(this.templatesDir, 'dockerfile', '.dockerignore');
140
+ return fs.readFileSync(templatePath, 'utf-8');
141
+ }
142
+ /**
143
+ * 备份文件(如果存在)
144
+ */
145
+ backupFile(filePath) {
146
+ if (fs.existsSync(filePath)) {
147
+ const backupPath = `${filePath}.backup`;
148
+ fs.copyFileSync(filePath, backupPath);
149
+ console.log(` ✓ 已备份: ${path.basename(filePath)} -> ${path.basename(backupPath)}`);
150
+ }
151
+ }
120
152
  /**
121
153
  * 生成所有文件到指定目录
122
154
  */
123
155
  async generateAll(outputDir, projectType, config, gitlabHost, registryType) {
124
156
  try {
125
157
  const files = [];
158
+ const filesToOverwrite = [];
126
159
  // 确保输出目录存在
127
160
  if (!fs.existsSync(outputDir)) {
128
161
  fs.mkdirSync(outputDir, { recursive: true });
@@ -132,50 +165,73 @@ class TemplateGenerator {
132
165
  if (!fs.existsSync(ciDir)) {
133
166
  fs.mkdirSync(ciDir, { recursive: true });
134
167
  }
135
- // 生成 .gitlab-ci.yml
136
- const gitlabCIContent = this.generateGitLabCI(projectType, config, gitlabHost, registryType);
168
+ // 检测将要覆盖的文件
137
169
  const gitlabCIPath = path.join(outputDir, '.gitlab-ci.yml');
138
- fs.writeFileSync(gitlabCIPath, gitlabCIContent, 'utf-8');
139
- files.push(gitlabCIPath);
140
- // 生成 docker-compose.yml
141
170
  const dockerComposePath = path.join(outputDir, 'docker-compose.yml');
142
- if (fs.existsSync(dockerComposePath)) {
143
- // 文件已存在,询问用户是否覆盖
171
+ const dockerfilePath = path.join(outputDir, 'Dockerfile');
172
+ const dockerignorePath = path.join(outputDir, '.dockerignore');
173
+ const deployScriptPath = path.join(ciDir, 'deploy.sh');
174
+ const envScriptPath = path.join(ciDir, 'generate-env.sh');
175
+ if (fs.existsSync(gitlabCIPath))
176
+ filesToOverwrite.push('.gitlab-ci.yml');
177
+ if (fs.existsSync(dockerComposePath))
178
+ filesToOverwrite.push('docker-compose.yml');
179
+ if (fs.existsSync(dockerfilePath))
180
+ filesToOverwrite.push('Dockerfile');
181
+ if (fs.existsSync(dockerignorePath))
182
+ filesToOverwrite.push('.dockerignore');
183
+ if (fs.existsSync(deployScriptPath))
184
+ filesToOverwrite.push('ci/deploy.sh');
185
+ if (fs.existsSync(envScriptPath))
186
+ filesToOverwrite.push('ci/generate-env.sh');
187
+ // 如果有文件将被覆盖,询问用户
188
+ if (filesToOverwrite.length > 0) {
189
+ console.log('\n⚠️ 以下文件将被覆盖:');
190
+ filesToOverwrite.forEach(f => console.log(` - ${f}`));
144
191
  const inquirer = (await Promise.resolve().then(() => __importStar(require('inquirer')))).default;
145
- const { overwrite } = await inquirer.prompt([
192
+ const { confirm } = await inquirer.prompt([
146
193
  {
147
194
  type: 'confirm',
148
- name: 'overwrite',
149
- message: '检测到现有 docker-compose.yml,是否覆盖?(覆盖后请检查配置一致性)',
150
- default: false,
195
+ name: 'confirm',
196
+ message: '是否继续?(旧文件将自动备份为 .backup)',
197
+ default: true,
151
198
  },
152
199
  ]);
153
- if (overwrite) {
154
- const dockerComposeContent = this.generateDockerCompose(projectType, config);
155
- fs.writeFileSync(dockerComposePath, dockerComposeContent, 'utf-8');
156
- files.push(dockerComposePath);
157
- }
158
- else {
159
- console.log('⚠️ 跳过生成 docker-compose.yml,保留现有文件');
200
+ if (!confirm) {
201
+ return { success: false, files: [], error: '用户取消操作' };
160
202
  }
203
+ console.log('\n📦 备份旧文件...');
161
204
  }
162
- else {
163
- const dockerComposeContent = this.generateDockerCompose(projectType, config);
164
- fs.writeFileSync(dockerComposePath, dockerComposeContent, 'utf-8');
165
- files.push(dockerComposePath);
166
- }
205
+ // 生成 .gitlab-ci.yml
206
+ const gitlabCIContent = this.generateGitLabCI(projectType, config, gitlabHost, registryType);
207
+ this.backupFile(gitlabCIPath);
208
+ fs.writeFileSync(gitlabCIPath, gitlabCIContent, 'utf-8');
209
+ files.push(gitlabCIPath);
210
+ // 生成 docker-compose.yml
211
+ this.backupFile(dockerComposePath);
212
+ const dockerComposeContent = this.generateDockerCompose(projectType, config);
213
+ fs.writeFileSync(dockerComposePath, dockerComposeContent, 'utf-8');
214
+ files.push(dockerComposePath);
215
+ // 生成 Dockerfile
216
+ this.backupFile(dockerfilePath);
217
+ const dockerfileContent = this.generateDockerfile(projectType, config);
218
+ fs.writeFileSync(dockerfilePath, dockerfileContent, 'utf-8');
219
+ files.push(dockerfilePath);
220
+ // 生成 .dockerignore
221
+ this.backupFile(dockerignorePath);
222
+ const dockerignoreContent = this.generateDockerignore();
223
+ fs.writeFileSync(dockerignorePath, dockerignoreContent, 'utf-8');
224
+ files.push(dockerignorePath);
167
225
  // 生成 ci/deploy.sh
226
+ this.backupFile(deployScriptPath);
168
227
  const deployScriptContent = this.generateDeployScript(config);
169
- const deployScriptPath = path.join(ciDir, 'deploy.sh');
170
228
  fs.writeFileSync(deployScriptPath, deployScriptContent, 'utf-8');
171
- // 添加执行权限
172
229
  fs.chmodSync(deployScriptPath, '755');
173
230
  files.push(deployScriptPath);
174
231
  // 生成 ci/generate-env.sh
232
+ this.backupFile(envScriptPath);
175
233
  const envScriptContent = this.generateEnvScript(config);
176
- const envScriptPath = path.join(ciDir, 'generate-env.sh');
177
234
  fs.writeFileSync(envScriptPath, envScriptContent, 'utf-8');
178
- // 添加执行权限
179
235
  fs.chmodSync(envScriptPath, '755');
180
236
  files.push(envScriptPath);
181
237
  return { success: true, files };
@@ -231,6 +287,18 @@ class TemplateGenerator {
231
287
  };
232
288
  return templateMapping[projectType] || 'nestjs';
233
289
  }
290
+ /**
291
+ * 根据项目类型获取 Dockerfile 模板名称
292
+ */
293
+ getDockerfileTemplate(projectType) {
294
+ const templateMapping = {
295
+ nestjs: 'nestjs',
296
+ vue: 'vue',
297
+ react: 'vue', // React 使用和 Vue 相同的模板
298
+ node: 'nestjs', // 通用 Node.js 项目使用 NestJS 模板
299
+ };
300
+ return templateMapping[projectType] || 'nestjs';
301
+ }
234
302
  /**
235
303
  * 根据项目类型获取 lint 命令
236
304
  */
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clouddreamai-cicd-setup",
3
- "version": "1.2.0",
3
+ "version": "1.4.0",
4
4
  "description": "CloudDreamAI GitLab CI/CD 自动配置工具 - 支持 NestJS/Vue/React 项目的一键 CI/CD 配置",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -0,0 +1,25 @@
1
+ node_modules
2
+ npm-debug.log
3
+ Dockerfile
4
+ .dockerignore
5
+ .git
6
+ .gitignore
7
+ README.md
8
+ .env
9
+ .env.*
10
+ .nyc_output
11
+ coverage
12
+ .coverage
13
+ .coverage/
14
+ junit.xml
15
+ .DS_Store
16
+ .vscode
17
+ .idea
18
+ *.log
19
+ logs/
20
+ dist/
21
+ build/
22
+ .gitlab-ci.yml
23
+ docker-compose.yml
24
+ ci/
25
+ scripts/
@@ -0,0 +1,42 @@
1
+ # 多阶段构建 Dockerfile - NestJS 项目
2
+ # 第一阶段:构建阶段
3
+ FROM node:20-alpine AS builder
4
+
5
+ # 设置工作目录
6
+ WORKDIR /app
7
+
8
+ # 复制 package.json 和 package-lock.json
9
+ COPY package*.json ./
10
+
11
+ # 安装依赖
12
+ RUN npm ci && npm cache clean --force
13
+
14
+ # 复制源代码
15
+ COPY . .
16
+
17
+ # 构建应用
18
+ RUN npm run build
19
+
20
+ # 第二阶段:运行阶段
21
+ FROM node:20-alpine AS production
22
+
23
+ # 创建非 root 用户
24
+ RUN addgroup -g 1001 -S nodejs && \
25
+ adduser -S nestjs -u 1001
26
+
27
+ # 设置工作目录
28
+ WORKDIR /app
29
+
30
+ # 从构建阶段复制 node_modules 和构建产物
31
+ COPY --from=builder --chown=nestjs:nodejs /app/node_modules ./node_modules
32
+ COPY --from=builder --chown=nestjs:nodejs /app/dist ./dist
33
+ COPY --from=builder --chown=nestjs:nodejs /app/package*.json ./
34
+
35
+ # 切换到非 root 用户
36
+ USER nestjs
37
+
38
+ # 暴露端口
39
+ EXPOSE {{APP_PORT}}
40
+
41
+ # 启动应用
42
+ CMD ["node", "dist/main"]
@@ -0,0 +1,33 @@
1
+ # 多阶段构建 Dockerfile - Vue 项目
2
+ # 第一阶段:构建阶段
3
+ FROM node:20-alpine AS builder
4
+
5
+ # 设置工作目录
6
+ WORKDIR /app
7
+
8
+ # 复制 package.json 和 package-lock.json
9
+ COPY package*.json ./
10
+
11
+ # 安装依赖
12
+ RUN npm ci && npm cache clean --force
13
+
14
+ # 复制源代码
15
+ COPY . .
16
+
17
+ # 构建应用
18
+ RUN npm run build
19
+
20
+ # 第二阶段:运行阶段 - 使用 Nginx 提供静态文件
21
+ FROM nginx:alpine AS production
22
+
23
+ # 复制构建产物到 Nginx 默认目录
24
+ COPY --from=builder /app/dist /usr/share/nginx/html
25
+
26
+ # 复制 Nginx 配置(如果有自定义配置)
27
+ # COPY nginx.conf /etc/nginx/nginx.conf
28
+
29
+ # 暴露端口
30
+ EXPOSE 80
31
+
32
+ # 启动 Nginx
33
+ CMD ["nginx", "-g", "daemon off;"]