clouddreamai-cicd-setup 1.4.1 → 1.5.1
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 +4 -1
- package/dist/cli.js.map +1 -1
- package/dist/core/types.d.ts +4 -23
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/variables.d.ts.map +1 -1
- package/dist/core/variables.js +1 -49
- package/dist/core/variables.js.map +1 -1
- package/dist/utils/prompts.d.ts +0 -4
- package/dist/utils/prompts.d.ts.map +1 -1
- package/dist/utils/prompts.js +36 -86
- package/dist/utils/prompts.js.map +1 -1
- package/dist/utils/template.d.ts +5 -5
- package/dist/utils/template.d.ts.map +1 -1
- package/dist/utils/template.js +16 -24
- package/dist/utils/template.js.map +1 -1
- package/package.json +1 -1
- package/templates/gitlab-ci/nestjs-gitlab.yml +15 -2
- package/templates/gitlab-ci/vue-gitlab.yml +19 -161
- package/templates/scripts/deploy.sh +25 -0
- package/templates/gitlab-ci/nestjs.yml +0 -376
- package/templates/gitlab-ci/vue.yml +0 -376
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -117,7 +117,12 @@ build:
|
|
|
117
117
|
name: docker:24.0.5
|
|
118
118
|
pull_policy: if-not-present
|
|
119
119
|
services:
|
|
120
|
-
- docker:24.0.5-dind
|
|
120
|
+
- name: docker:24.0.5-dind
|
|
121
|
+
variables:
|
|
122
|
+
# 自动继承 Runner 的代理配置(如果存在)
|
|
123
|
+
HTTP_PROXY: ${HTTP_PROXY:-}
|
|
124
|
+
HTTPS_PROXY: ${HTTPS_PROXY:-}
|
|
125
|
+
NO_PROXY: ${NO_PROXY:-localhost,127.0.0.1,docker}
|
|
121
126
|
variables:
|
|
122
127
|
DOCKER_HOST: tcp://docker:2375
|
|
123
128
|
DOCKER_TLS_CERTDIR: ""
|
|
@@ -131,7 +136,15 @@ build:
|
|
|
131
136
|
- echo "尝试拉取最新镜像作为缓存..."
|
|
132
137
|
- docker pull $DOCKER_IMAGE:latest || true
|
|
133
138
|
- echo "构建Docker镜像..."
|
|
134
|
-
-
|
|
139
|
+
- |
|
|
140
|
+
docker build \
|
|
141
|
+
--build-arg BUILDKIT_INLINE_CACHE=1 \
|
|
142
|
+
--build-arg HTTP_PROXY=${HTTP_PROXY:-} \
|
|
143
|
+
--build-arg HTTPS_PROXY=${HTTPS_PROXY:-} \
|
|
144
|
+
--build-arg NO_PROXY=${NO_PROXY:-} \
|
|
145
|
+
--cache-from $DOCKER_IMAGE:latest \
|
|
146
|
+
-t $DOCKER_IMAGE:$CI_COMMIT_SHA \
|
|
147
|
+
-t $DOCKER_IMAGE:latest .
|
|
135
148
|
- echo "推送镜像到 GitLab Container Registry..."
|
|
136
149
|
- docker push $DOCKER_IMAGE:$CI_COMMIT_SHA
|
|
137
150
|
- docker push $DOCKER_IMAGE:latest
|
|
@@ -117,59 +117,34 @@ build:
|
|
|
117
117
|
name: docker:24.0.5
|
|
118
118
|
pull_policy: if-not-present
|
|
119
119
|
services:
|
|
120
|
-
- docker:24.0.5-dind
|
|
120
|
+
- name: docker:24.0.5-dind
|
|
121
|
+
variables:
|
|
122
|
+
# 自动继承 Runner 的代理配置(如果存在)
|
|
123
|
+
HTTP_PROXY: ${HTTP_PROXY:-}
|
|
124
|
+
HTTPS_PROXY: ${HTTPS_PROXY:-}
|
|
125
|
+
NO_PROXY: ${NO_PROXY:-localhost,127.0.0.1,docker}
|
|
121
126
|
variables:
|
|
122
127
|
DOCKER_HOST: tcp://docker:2375
|
|
123
128
|
DOCKER_TLS_CERTDIR: ""
|
|
124
129
|
DOCKER_DRIVER: overlay2
|
|
125
130
|
before_script:
|
|
126
|
-
- |
|
|
127
|
-
# 智能检测并运行 lint 命令
|
|
128
|
-
echo "检测可用的 lint 命令..."
|
|
129
|
-
if npm run | grep -q "lint:check"; then
|
|
130
|
-
echo "✓ 运行 npm run lint:check"
|
|
131
|
-
npm run lint:check
|
|
132
|
-
elif npm run | grep -q "lint"; then
|
|
133
|
-
echo "✓ 运行 npm run lint"
|
|
134
|
-
npm run lint
|
|
135
|
-
elif npm run | grep -q "type-check"; then
|
|
136
|
-
echo "✓ 运行 npm run type-check"
|
|
137
|
-
npm run type-check
|
|
138
|
-
else
|
|
139
|
-
echo "⚠️ 未找到 lint 相关命令,跳过代码检查"
|
|
140
|
-
echo "建议在 package.json 中添加以下命令之一:"
|
|
141
|
-
echo " - lint:check (推荐)"
|
|
142
|
-
echo " - lint"
|
|
143
|
-
echo " - type-check"
|
|
144
|
-
fi
|
|
145
131
|
- docker info
|
|
146
132
|
- echo "登录到 GitLab Container Registry..."
|
|
147
133
|
# 使用 GitLab CI 预定义变量登录
|
|
148
134
|
- echo "$CI_REGISTRY_PASSWORD" | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
|
|
149
135
|
script:
|
|
150
|
-
- |
|
|
151
|
-
# 智能检测并运行 lint 命令
|
|
152
|
-
echo "检测可用的 lint 命令..."
|
|
153
|
-
if npm run | grep -q "lint:check"; then
|
|
154
|
-
echo "✓ 运行 npm run lint:check"
|
|
155
|
-
npm run lint:check
|
|
156
|
-
elif npm run | grep -q "lint"; then
|
|
157
|
-
echo "✓ 运行 npm run lint"
|
|
158
|
-
npm run lint
|
|
159
|
-
elif npm run | grep -q "type-check"; then
|
|
160
|
-
echo "✓ 运行 npm run type-check"
|
|
161
|
-
npm run type-check
|
|
162
|
-
else
|
|
163
|
-
echo "⚠️ 未找到 lint 相关命令,跳过代码检查"
|
|
164
|
-
echo "建议在 package.json 中添加以下命令之一:"
|
|
165
|
-
echo " - lint:check (推荐)"
|
|
166
|
-
echo " - lint"
|
|
167
|
-
echo " - type-check"
|
|
168
|
-
fi
|
|
169
136
|
- echo "尝试拉取最新镜像作为缓存..."
|
|
170
137
|
- docker pull $DOCKER_IMAGE:latest || true
|
|
171
138
|
- echo "构建Docker镜像..."
|
|
172
|
-
-
|
|
139
|
+
- |
|
|
140
|
+
docker build \
|
|
141
|
+
--build-arg BUILDKIT_INLINE_CACHE=1 \
|
|
142
|
+
--build-arg HTTP_PROXY=${HTTP_PROXY:-} \
|
|
143
|
+
--build-arg HTTPS_PROXY=${HTTPS_PROXY:-} \
|
|
144
|
+
--build-arg NO_PROXY=${NO_PROXY:-} \
|
|
145
|
+
--cache-from $DOCKER_IMAGE:latest \
|
|
146
|
+
-t $DOCKER_IMAGE:$CI_COMMIT_SHA \
|
|
147
|
+
-t $DOCKER_IMAGE:latest .
|
|
173
148
|
- echo "推送镜像到 GitLab Container Registry..."
|
|
174
149
|
- docker push $DOCKER_IMAGE:$CI_COMMIT_SHA
|
|
175
150
|
- docker push $DOCKER_IMAGE:latest
|
|
@@ -190,52 +165,13 @@ deploy_dev:
|
|
|
190
165
|
APP_PORT: "{{DEV_PORT}}"
|
|
191
166
|
cache: {}
|
|
192
167
|
before_script:
|
|
193
|
-
- |
|
|
194
|
-
# 智能检测并运行 lint 命令
|
|
195
|
-
echo "检测可用的 lint 命令..."
|
|
196
|
-
if npm run | grep -q "lint:check"; then
|
|
197
|
-
echo "✓ 运行 npm run lint:check"
|
|
198
|
-
npm run lint:check
|
|
199
|
-
elif npm run | grep -q "lint"; then
|
|
200
|
-
echo "✓ 运行 npm run lint"
|
|
201
|
-
npm run lint
|
|
202
|
-
elif npm run | grep -q "type-check"; then
|
|
203
|
-
echo "✓ 运行 npm run type-check"
|
|
204
|
-
npm run type-check
|
|
205
|
-
else
|
|
206
|
-
echo "⚠️ 未找到 lint 相关命令,跳过代码检查"
|
|
207
|
-
echo "建议在 package.json 中添加以下命令之一:"
|
|
208
|
-
echo " - lint:check (推荐)"
|
|
209
|
-
echo " - lint"
|
|
210
|
-
echo " - type-check"
|
|
211
|
-
fi
|
|
212
168
|
- apk add --no-cache sshpass bash openssl rsync
|
|
213
169
|
- mkdir -p ~/.ssh
|
|
214
170
|
- chmod 700 ~/.ssh
|
|
215
|
-
|
|
171
|
+
# 使用密码认证,跳过 SSH 主机密钥检查
|
|
216
172
|
- echo "StrictHostKeyChecking no" >> ~/.ssh/config
|
|
217
173
|
- chmod 600 ~/.ssh/config
|
|
218
|
-
- chmod 644 ~/.ssh/known_hosts
|
|
219
174
|
script:
|
|
220
|
-
- |
|
|
221
|
-
# 智能检测并运行 lint 命令
|
|
222
|
-
echo "检测可用的 lint 命令..."
|
|
223
|
-
if npm run | grep -q "lint:check"; then
|
|
224
|
-
echo "✓ 运行 npm run lint:check"
|
|
225
|
-
npm run lint:check
|
|
226
|
-
elif npm run | grep -q "lint"; then
|
|
227
|
-
echo "✓ 运行 npm run lint"
|
|
228
|
-
npm run lint
|
|
229
|
-
elif npm run | grep -q "type-check"; then
|
|
230
|
-
echo "✓ 运行 npm run type-check"
|
|
231
|
-
npm run type-check
|
|
232
|
-
else
|
|
233
|
-
echo "⚠️ 未找到 lint 相关命令,跳过代码检查"
|
|
234
|
-
echo "建议在 package.json 中添加以下命令之一:"
|
|
235
|
-
echo " - lint:check (推荐)"
|
|
236
|
-
echo " - lint"
|
|
237
|
-
echo " - type-check"
|
|
238
|
-
fi
|
|
239
175
|
- sshpass -p "$SSH_PASSWORD" ssh root@$TEST_SERVER_HOST "mkdir -p $DEPLOY_DIR"
|
|
240
176
|
- sshpass -p "$SSH_PASSWORD" ssh root@$TEST_SERVER_HOST "which rsync || apk add --no-cache rsync"
|
|
241
177
|
- sshpass -p "$SSH_PASSWORD" rsync -avz --delete --exclude='.git/' --exclude='node_modules/' . root@$TEST_SERVER_HOST:$DEPLOY_DIR/
|
|
@@ -260,52 +196,13 @@ deploy_prod:
|
|
|
260
196
|
APP_PORT: "{{PROD_PORT}}"
|
|
261
197
|
cache: {}
|
|
262
198
|
before_script:
|
|
263
|
-
- |
|
|
264
|
-
# 智能检测并运行 lint 命令
|
|
265
|
-
echo "检测可用的 lint 命令..."
|
|
266
|
-
if npm run | grep -q "lint:check"; then
|
|
267
|
-
echo "✓ 运行 npm run lint:check"
|
|
268
|
-
npm run lint:check
|
|
269
|
-
elif npm run | grep -q "lint"; then
|
|
270
|
-
echo "✓ 运行 npm run lint"
|
|
271
|
-
npm run lint
|
|
272
|
-
elif npm run | grep -q "type-check"; then
|
|
273
|
-
echo "✓ 运行 npm run type-check"
|
|
274
|
-
npm run type-check
|
|
275
|
-
else
|
|
276
|
-
echo "⚠️ 未找到 lint 相关命令,跳过代码检查"
|
|
277
|
-
echo "建议在 package.json 中添加以下命令之一:"
|
|
278
|
-
echo " - lint:check (推荐)"
|
|
279
|
-
echo " - lint"
|
|
280
|
-
echo " - type-check"
|
|
281
|
-
fi
|
|
282
199
|
- apk add --no-cache sshpass bash openssl rsync
|
|
283
200
|
- mkdir -p ~/.ssh
|
|
284
201
|
- chmod 700 ~/.ssh
|
|
285
|
-
|
|
202
|
+
# 使用密码认证,跳过 SSH 主机密钥检查
|
|
286
203
|
- echo "StrictHostKeyChecking no" >> ~/.ssh/config
|
|
287
204
|
- chmod 600 ~/.ssh/config
|
|
288
|
-
- chmod 644 ~/.ssh/known_hosts
|
|
289
205
|
script:
|
|
290
|
-
- |
|
|
291
|
-
# 智能检测并运行 lint 命令
|
|
292
|
-
echo "检测可用的 lint 命令..."
|
|
293
|
-
if npm run | grep -q "lint:check"; then
|
|
294
|
-
echo "✓ 运行 npm run lint:check"
|
|
295
|
-
npm run lint:check
|
|
296
|
-
elif npm run | grep -q "lint"; then
|
|
297
|
-
echo "✓ 运行 npm run lint"
|
|
298
|
-
npm run lint
|
|
299
|
-
elif npm run | grep -q "type-check"; then
|
|
300
|
-
echo "✓ 运行 npm run type-check"
|
|
301
|
-
npm run type-check
|
|
302
|
-
else
|
|
303
|
-
echo "⚠️ 未找到 lint 相关命令,跳过代码检查"
|
|
304
|
-
echo "建议在 package.json 中添加以下命令之一:"
|
|
305
|
-
echo " - lint:check (推荐)"
|
|
306
|
-
echo " - lint"
|
|
307
|
-
echo " - type-check"
|
|
308
|
-
fi
|
|
309
206
|
- sshpass -p "$SSH_PASSWORD" ssh root@$PROD_SERVER_HOST "mkdir -p $DEPLOY_DIR"
|
|
310
207
|
- sshpass -p "$SSH_PASSWORD" ssh root@$PROD_SERVER_HOST "which rsync || apk add --no-cache rsync"
|
|
311
208
|
- sshpass -p "$SSH_PASSWORD" rsync -avz --delete --exclude='.git/' --exclude='node_modules/' . root@$PROD_SERVER_HOST:$DEPLOY_DIR/
|
|
@@ -329,52 +226,13 @@ rollback:
|
|
|
329
226
|
APP_PORT: "{{PROD_PORT}}"
|
|
330
227
|
cache: {}
|
|
331
228
|
before_script:
|
|
332
|
-
-
|
|
333
|
-
# 智能检测并运行 lint 命令
|
|
334
|
-
echo "检测可用的 lint 命令..."
|
|
335
|
-
if npm run | grep -q "lint:check"; then
|
|
336
|
-
echo "✓ 运行 npm run lint:check"
|
|
337
|
-
npm run lint:check
|
|
338
|
-
elif npm run | grep -q "lint"; then
|
|
339
|
-
echo "✓ 运行 npm run lint"
|
|
340
|
-
npm run lint
|
|
341
|
-
elif npm run | grep -q "type-check"; then
|
|
342
|
-
echo "✓ 运行 npm run type-check"
|
|
343
|
-
npm run type-check
|
|
344
|
-
else
|
|
345
|
-
echo "⚠️ 未找到 lint 相关命令,跳过代码检查"
|
|
346
|
-
echo "建议在 package.json 中添加以下命令之一:"
|
|
347
|
-
echo " - lint:check (推荐)"
|
|
348
|
-
echo " - lint"
|
|
349
|
-
echo " - type-check"
|
|
350
|
-
fi
|
|
351
|
-
- apk add --no-cache openssh-client openssl
|
|
229
|
+
- apk add --no-cache sshpass bash openssl
|
|
352
230
|
- mkdir -p ~/.ssh
|
|
353
231
|
- chmod 700 ~/.ssh
|
|
354
|
-
|
|
232
|
+
# 使用密码认证,跳过 SSH 主机密钥检查
|
|
355
233
|
- echo "StrictHostKeyChecking no" >> ~/.ssh/config
|
|
356
234
|
- chmod 600 ~/.ssh/config
|
|
357
|
-
- chmod 644 ~/.ssh/known_hosts
|
|
358
235
|
script:
|
|
359
|
-
- |
|
|
360
|
-
# 智能检测并运行 lint 命令
|
|
361
|
-
echo "检测可用的 lint 命令..."
|
|
362
|
-
if npm run | grep -q "lint:check"; then
|
|
363
|
-
echo "✓ 运行 npm run lint:check"
|
|
364
|
-
npm run lint:check
|
|
365
|
-
elif npm run | grep -q "lint"; then
|
|
366
|
-
echo "✓ 运行 npm run lint"
|
|
367
|
-
npm run lint
|
|
368
|
-
elif npm run | grep -q "type-check"; then
|
|
369
|
-
echo "✓ 运行 npm run type-check"
|
|
370
|
-
npm run type-check
|
|
371
|
-
else
|
|
372
|
-
echo "⚠️ 未找到 lint 相关命令,跳过代码检查"
|
|
373
|
-
echo "建议在 package.json 中添加以下命令之一:"
|
|
374
|
-
echo " - lint:check (推荐)"
|
|
375
|
-
echo " - lint"
|
|
376
|
-
echo " - type-check"
|
|
377
|
-
fi
|
|
378
236
|
- sshpass -p "$SSH_PASSWORD" ssh root@$PROD_SERVER_HOST "cd $DEPLOY_DIR && export APP_PORT=$APP_PORT && docker-compose down"
|
|
379
237
|
- sshpass -p "$SSH_PASSWORD" ssh root@$PROD_SERVER_HOST "cd $DEPLOY_DIR && export APP_PORT=$APP_PORT && docker-compose pull"
|
|
380
238
|
- sshpass -p "$SSH_PASSWORD" ssh root@$PROD_SERVER_HOST "cd $DEPLOY_DIR && export APP_PORT=$APP_PORT && docker-compose up -d"
|
|
@@ -10,6 +10,8 @@ APP_NAME="{{APP_NAME}}"
|
|
|
10
10
|
DEPLOY_PATH="{{DEPLOY_DIR}}"
|
|
11
11
|
ENV_TYPE=${1:-development}
|
|
12
12
|
REGISTRY_TYPE=${2:-dockerhub} # 镜像仓库类型: gitlab, dockerhub, custom, none
|
|
13
|
+
ENABLE_MIGRATION="{{ENABLE_MIGRATION}}" # 是否启用数据库迁移: true/false
|
|
14
|
+
MIGRATION_COMMAND="{{MIGRATION_COMMAND}}" # 迁移命令,默认 npm run migration:run
|
|
13
15
|
|
|
14
16
|
# 根据环境设置端口和域名
|
|
15
17
|
if [ "$ENV_TYPE" = "production" ]; then
|
|
@@ -241,6 +243,29 @@ else
|
|
|
241
243
|
exit 1
|
|
242
244
|
fi
|
|
243
245
|
|
|
246
|
+
# 执行数据库迁移(如果启用)
|
|
247
|
+
if [ "$ENABLE_MIGRATION" = "true" ]; then
|
|
248
|
+
echo "执行数据库迁移..."
|
|
249
|
+
|
|
250
|
+
# 等待应用完全启动(数据库连接就绪)
|
|
251
|
+
echo "等待应用启动完成..."
|
|
252
|
+
sleep 5
|
|
253
|
+
|
|
254
|
+
# 在容器内执行迁移命令
|
|
255
|
+
MIGRATION_CMD="${MIGRATION_COMMAND:-npm run migration:run}"
|
|
256
|
+
echo "执行迁移命令: $MIGRATION_CMD"
|
|
257
|
+
|
|
258
|
+
if docker-compose exec -T $APP_NAME sh -c "$MIGRATION_CMD"; then
|
|
259
|
+
echo "✓ 数据库迁移执行成功"
|
|
260
|
+
else
|
|
261
|
+
echo "⚠️ 数据库迁移执行失败,请检查日志"
|
|
262
|
+
echo "提示: 如果是首次部署且没有待执行的迁移,此警告可以忽略"
|
|
263
|
+
# 不退出,迁移失败不应该导致整个部署失败
|
|
264
|
+
fi
|
|
265
|
+
else
|
|
266
|
+
echo "跳过数据库迁移(未启用)"
|
|
267
|
+
fi
|
|
268
|
+
|
|
244
269
|
# 配置 Nginx 反向代理
|
|
245
270
|
configure_nginx_proxy "$DOMAIN" "$APP_PORT"
|
|
246
271
|
|