clouddreamai-cicd-setup 1.1.0 → 1.2.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/package.json
CHANGED
|
@@ -46,15 +46,23 @@ lint:
|
|
|
46
46
|
- |
|
|
47
47
|
# 智能检测并运行 lint 命令
|
|
48
48
|
echo "检测可用的 lint 命令..."
|
|
49
|
+
LINT_FAILED=0
|
|
50
|
+
|
|
49
51
|
if npm run | grep -q "lint:check"; then
|
|
50
52
|
echo "✓ 运行 npm run lint:check"
|
|
51
|
-
npm run lint:check
|
|
53
|
+
if ! npm run lint:check; then
|
|
54
|
+
LINT_FAILED=1
|
|
55
|
+
fi
|
|
52
56
|
elif npm run | grep -q "lint"; then
|
|
53
57
|
echo "✓ 运行 npm run lint"
|
|
54
|
-
npm run lint
|
|
58
|
+
if ! npm run lint; then
|
|
59
|
+
LINT_FAILED=1
|
|
60
|
+
fi
|
|
55
61
|
elif npm run | grep -q "type-check"; then
|
|
56
62
|
echo "✓ 运行 npm run type-check"
|
|
57
|
-
npm run type-check
|
|
63
|
+
if ! npm run type-check; then
|
|
64
|
+
LINT_FAILED=1
|
|
65
|
+
fi
|
|
58
66
|
else
|
|
59
67
|
echo "⚠️ 未找到 lint 相关命令,跳过代码检查"
|
|
60
68
|
echo "建议在 package.json 中添加以下命令之一:"
|
|
@@ -62,6 +70,40 @@ lint:
|
|
|
62
70
|
echo " - lint"
|
|
63
71
|
echo " - type-check"
|
|
64
72
|
fi
|
|
73
|
+
|
|
74
|
+
# 如果 lint 失败,输出友好的中文提示
|
|
75
|
+
if [ $LINT_FAILED -eq 1 ]; then
|
|
76
|
+
echo ""
|
|
77
|
+
echo "======================================================================"
|
|
78
|
+
echo "❌ 代码质量检查未通过"
|
|
79
|
+
echo "======================================================================"
|
|
80
|
+
echo ""
|
|
81
|
+
echo "📋 发现了一些代码质量问题,需要修复后才能继续部署。"
|
|
82
|
+
echo ""
|
|
83
|
+
echo "🔧 快速修复方法:"
|
|
84
|
+
echo ""
|
|
85
|
+
echo " 1. 在本地运行自动修复:"
|
|
86
|
+
echo " npm run lint"
|
|
87
|
+
echo ""
|
|
88
|
+
echo " 2. 查看具体问题:"
|
|
89
|
+
echo " npm run lint:check"
|
|
90
|
+
echo ""
|
|
91
|
+
echo " 3. 修复后提交:"
|
|
92
|
+
echo " git add ."
|
|
93
|
+
echo " git commit -m \"fix: 修复代码质量问题\""
|
|
94
|
+
echo " git push"
|
|
95
|
+
echo ""
|
|
96
|
+
echo "💡 常见问题类型:"
|
|
97
|
+
echo " - TypeScript 类型安全问题(使用了 any 类型)"
|
|
98
|
+
echo " - 未使用的变量或导入"
|
|
99
|
+
echo " - async 函数缺少 await"
|
|
100
|
+
echo " - Promise 未正确处理"
|
|
101
|
+
echo ""
|
|
102
|
+
echo "📖 详细错误信息请查看上方输出"
|
|
103
|
+
echo "======================================================================"
|
|
104
|
+
echo ""
|
|
105
|
+
exit 1
|
|
106
|
+
fi
|
|
65
107
|
only:
|
|
66
108
|
- merge_requests
|
|
67
109
|
- main
|
|
@@ -110,8 +152,6 @@ deploy_dev:
|
|
|
110
152
|
# 使用密码认证,跳过 SSH 主机密钥检查
|
|
111
153
|
- echo "StrictHostKeyChecking no" >> ~/.ssh/config
|
|
112
154
|
- chmod 600 ~/.ssh/config
|
|
113
|
-
- echo "StrictHostKeyChecking no" >> ~/.ssh/config
|
|
114
|
-
- chmod 600 ~/.ssh/config
|
|
115
155
|
script:
|
|
116
156
|
- sshpass -p "$SSH_PASSWORD" ssh root@$TEST_SERVER_HOST "mkdir -p $DEPLOY_DIR"
|
|
117
157
|
- sshpass -p "$SSH_PASSWORD" ssh root@$TEST_SERVER_HOST "which rsync || apk add --no-cache rsync"
|
|
@@ -120,7 +160,7 @@ deploy_dev:
|
|
|
120
160
|
- sshpass -p "$SSH_PASSWORD" ssh root@$TEST_SERVER_HOST "export REGISTRY_URL='$CI_REGISTRY' && export REGISTRY_USERNAME='$CI_REGISTRY_USER' && export REGISTRY_PASSWORD='$CI_REGISTRY_PASSWORD' && export APP_PORT='$APP_PORT' && cd $DEPLOY_DIR && chmod +x ci/deploy.sh && bash ci/deploy.sh $ENV_TYPE gitlab"
|
|
121
161
|
environment:
|
|
122
162
|
name: development
|
|
123
|
-
url: {{DEV_URL}}
|
|
163
|
+
url: "{{DEV_URL}}"
|
|
124
164
|
only:
|
|
125
165
|
- develop
|
|
126
166
|
|
|
@@ -143,8 +183,6 @@ deploy_prod:
|
|
|
143
183
|
# 使用密码认证,跳过 SSH 主机密钥检查
|
|
144
184
|
- echo "StrictHostKeyChecking no" >> ~/.ssh/config
|
|
145
185
|
- chmod 600 ~/.ssh/config
|
|
146
|
-
- echo "StrictHostKeyChecking no" >> ~/.ssh/config
|
|
147
|
-
- chmod 600 ~/.ssh/config
|
|
148
186
|
script:
|
|
149
187
|
- sshpass -p "$SSH_PASSWORD" ssh root@$PROD_SERVER_HOST "mkdir -p $DEPLOY_DIR"
|
|
150
188
|
- sshpass -p "$SSH_PASSWORD" ssh root@$PROD_SERVER_HOST "which rsync || apk add --no-cache rsync"
|
|
@@ -153,7 +191,7 @@ deploy_prod:
|
|
|
153
191
|
- sshpass -p "$SSH_PASSWORD" ssh root@$PROD_SERVER_HOST "export REGISTRY_URL='$CI_REGISTRY' && export REGISTRY_USERNAME='$CI_REGISTRY_USER' && export REGISTRY_PASSWORD='$CI_REGISTRY_PASSWORD' && export APP_PORT='$APP_PORT' && cd $DEPLOY_DIR && chmod +x ci/deploy.sh && bash ci/deploy.sh $ENV_TYPE gitlab"
|
|
154
192
|
environment:
|
|
155
193
|
name: production
|
|
156
|
-
url: {{PROD_URL}}
|
|
194
|
+
url: "{{PROD_URL}}"
|
|
157
195
|
only:
|
|
158
196
|
- main
|
|
159
197
|
when: manual
|
|
@@ -169,20 +207,19 @@ rollback:
|
|
|
169
207
|
APP_PORT: "{{PROD_PORT}}"
|
|
170
208
|
cache: {}
|
|
171
209
|
before_script:
|
|
172
|
-
- apk add --no-cache
|
|
210
|
+
- apk add --no-cache sshpass bash openssl
|
|
173
211
|
- mkdir -p ~/.ssh
|
|
174
212
|
- chmod 700 ~/.ssh
|
|
175
213
|
# 使用密码认证,跳过 SSH 主机密钥检查
|
|
176
214
|
- echo "StrictHostKeyChecking no" >> ~/.ssh/config
|
|
177
215
|
- chmod 600 ~/.ssh/config
|
|
178
|
-
- chmod 644 ~/.ssh/known_hosts
|
|
179
216
|
script:
|
|
180
217
|
- sshpass -p "$SSH_PASSWORD" ssh root@$PROD_SERVER_HOST "cd $DEPLOY_DIR && export APP_PORT=$APP_PORT && docker-compose down"
|
|
181
218
|
- sshpass -p "$SSH_PASSWORD" ssh root@$PROD_SERVER_HOST "cd $DEPLOY_DIR && export APP_PORT=$APP_PORT && docker-compose pull"
|
|
182
219
|
- sshpass -p "$SSH_PASSWORD" ssh root@$PROD_SERVER_HOST "cd $DEPLOY_DIR && export APP_PORT=$APP_PORT && docker-compose up -d"
|
|
183
220
|
environment:
|
|
184
221
|
name: production
|
|
185
|
-
url: {{PROD_URL}}
|
|
222
|
+
url: "{{PROD_URL}}"
|
|
186
223
|
when: manual
|
|
187
224
|
only:
|
|
188
225
|
- main
|
|
@@ -35,25 +35,6 @@ lint:
|
|
|
35
35
|
- .npm/
|
|
36
36
|
policy: pull-push
|
|
37
37
|
before_script:
|
|
38
|
-
- |
|
|
39
|
-
# 智能检测并运行 lint 命令
|
|
40
|
-
echo "检测可用的 lint 命令..."
|
|
41
|
-
if npm run | grep -q "lint:check"; then
|
|
42
|
-
echo "✓ 运行 npm run lint:check"
|
|
43
|
-
npm run lint:check
|
|
44
|
-
elif npm run | grep -q "lint"; then
|
|
45
|
-
echo "✓ 运行 npm run lint"
|
|
46
|
-
npm run lint
|
|
47
|
-
elif npm run | grep -q "type-check"; then
|
|
48
|
-
echo "✓ 运行 npm run type-check"
|
|
49
|
-
npm run type-check
|
|
50
|
-
else
|
|
51
|
-
echo "⚠️ 未找到 lint 相关命令,跳过代码检查"
|
|
52
|
-
echo "建议在 package.json 中添加以下命令之一:"
|
|
53
|
-
echo " - lint:check (推荐)"
|
|
54
|
-
echo " - lint"
|
|
55
|
-
echo " - type-check"
|
|
56
|
-
fi
|
|
57
38
|
- apk add --no-cache git curl jq
|
|
58
39
|
- git --version
|
|
59
40
|
- echo "Setting up Git authentication..."
|
|
@@ -65,15 +46,23 @@ lint:
|
|
|
65
46
|
- |
|
|
66
47
|
# 智能检测并运行 lint 命令
|
|
67
48
|
echo "检测可用的 lint 命令..."
|
|
49
|
+
LINT_FAILED=0
|
|
50
|
+
|
|
68
51
|
if npm run | grep -q "lint:check"; then
|
|
69
52
|
echo "✓ 运行 npm run lint:check"
|
|
70
|
-
npm run lint:check
|
|
53
|
+
if ! npm run lint:check; then
|
|
54
|
+
LINT_FAILED=1
|
|
55
|
+
fi
|
|
71
56
|
elif npm run | grep -q "lint"; then
|
|
72
57
|
echo "✓ 运行 npm run lint"
|
|
73
|
-
npm run lint
|
|
58
|
+
if ! npm run lint; then
|
|
59
|
+
LINT_FAILED=1
|
|
60
|
+
fi
|
|
74
61
|
elif npm run | grep -q "type-check"; then
|
|
75
62
|
echo "✓ 运行 npm run type-check"
|
|
76
|
-
npm run type-check
|
|
63
|
+
if ! npm run type-check; then
|
|
64
|
+
LINT_FAILED=1
|
|
65
|
+
fi
|
|
77
66
|
else
|
|
78
67
|
echo "⚠️ 未找到 lint 相关命令,跳过代码检查"
|
|
79
68
|
echo "建议在 package.json 中添加以下命令之一:"
|
|
@@ -81,6 +70,40 @@ lint:
|
|
|
81
70
|
echo " - lint"
|
|
82
71
|
echo " - type-check"
|
|
83
72
|
fi
|
|
73
|
+
|
|
74
|
+
# 如果 lint 失败,输出友好的中文提示
|
|
75
|
+
if [ $LINT_FAILED -eq 1 ]; then
|
|
76
|
+
echo ""
|
|
77
|
+
echo "======================================================================"
|
|
78
|
+
echo "❌ 代码质量检查未通过"
|
|
79
|
+
echo "======================================================================"
|
|
80
|
+
echo ""
|
|
81
|
+
echo "📋 发现了一些代码质量问题,需要修复后才能继续部署。"
|
|
82
|
+
echo ""
|
|
83
|
+
echo "🔧 快速修复方法:"
|
|
84
|
+
echo ""
|
|
85
|
+
echo " 1. 在本地运行自动修复:"
|
|
86
|
+
echo " npm run lint"
|
|
87
|
+
echo ""
|
|
88
|
+
echo " 2. 查看具体问题:"
|
|
89
|
+
echo " npm run lint:check"
|
|
90
|
+
echo ""
|
|
91
|
+
echo " 3. 修复后提交:"
|
|
92
|
+
echo " git add ."
|
|
93
|
+
echo " git commit -m \"fix: 修复代码质量问题\""
|
|
94
|
+
echo " git push"
|
|
95
|
+
echo ""
|
|
96
|
+
echo "💡 常见问题类型:"
|
|
97
|
+
echo " - TypeScript 类型安全问题(使用了 any 类型)"
|
|
98
|
+
echo " - 未使用的变量或导入"
|
|
99
|
+
echo " - async 函数缺少 await"
|
|
100
|
+
echo " - Promise 未正确处理"
|
|
101
|
+
echo ""
|
|
102
|
+
echo "📖 详细错误信息请查看上方输出"
|
|
103
|
+
echo "======================================================================"
|
|
104
|
+
echo ""
|
|
105
|
+
exit 1
|
|
106
|
+
fi
|
|
84
107
|
only:
|
|
85
108
|
- merge_requests
|
|
86
109
|
- main
|
|
@@ -210,7 +233,7 @@ deploy_dev:
|
|
|
210
233
|
- sshpass -p "$SSH_PASSWORD" ssh root@$TEST_SERVER_HOST "export DOCKER_HUB_USERNAME='$DOCKER_HUB_USERNAME' && export DOCKER_HUB_PASSWORD='$DOCKER_HUB_PASSWORD' && export APP_PORT='$APP_PORT' && cd $DEPLOY_DIR && chmod +x ci/deploy.sh && bash ci/deploy.sh $ENV_TYPE $REGISTRY_TYPE"
|
|
211
234
|
environment:
|
|
212
235
|
name: development
|
|
213
|
-
url: {{DEV_URL}}
|
|
236
|
+
url: "{{DEV_URL}}"
|
|
214
237
|
only:
|
|
215
238
|
- develop
|
|
216
239
|
|
|
@@ -277,7 +300,7 @@ deploy_prod:
|
|
|
277
300
|
- sshpass -p "$SSH_PASSWORD" ssh root@$PROD_SERVER_HOST "export DOCKER_HUB_USERNAME='$DOCKER_HUB_USERNAME' && export DOCKER_HUB_PASSWORD='$DOCKER_HUB_PASSWORD' && export APP_PORT='$APP_PORT' && cd $DEPLOY_DIR && chmod +x ci/deploy.sh && bash ci/deploy.sh $ENV_TYPE $REGISTRY_TYPE"
|
|
278
301
|
environment:
|
|
279
302
|
name: production
|
|
280
|
-
url: {{PROD_URL}}
|
|
303
|
+
url: "{{PROD_URL}}"
|
|
281
304
|
only:
|
|
282
305
|
- main
|
|
283
306
|
when: manual
|
|
@@ -341,7 +364,7 @@ rollback:
|
|
|
341
364
|
- sshpass -p "$SSH_PASSWORD" ssh root@$PROD_SERVER_HOST "cd $DEPLOY_DIR && export APP_PORT=$APP_PORT && docker-compose up -d"
|
|
342
365
|
environment:
|
|
343
366
|
name: production
|
|
344
|
-
url: {{PROD_URL}}
|
|
367
|
+
url: "{{PROD_URL}}"
|
|
345
368
|
when: manual
|
|
346
369
|
only:
|
|
347
370
|
- main
|
|
@@ -35,25 +35,6 @@ lint:
|
|
|
35
35
|
- .npm/
|
|
36
36
|
policy: pull-push
|
|
37
37
|
before_script:
|
|
38
|
-
- |
|
|
39
|
-
# 智能检测并运行 lint 命令
|
|
40
|
-
echo "检测可用的 lint 命令..."
|
|
41
|
-
if npm run | grep -q "lint:check"; then
|
|
42
|
-
echo "✓ 运行 npm run lint:check"
|
|
43
|
-
npm run lint:check
|
|
44
|
-
elif npm run | grep -q "lint"; then
|
|
45
|
-
echo "✓ 运行 npm run lint"
|
|
46
|
-
npm run lint
|
|
47
|
-
elif npm run | grep -q "type-check"; then
|
|
48
|
-
echo "✓ 运行 npm run type-check"
|
|
49
|
-
npm run type-check
|
|
50
|
-
else
|
|
51
|
-
echo "⚠️ 未找到 lint 相关命令,跳过代码检查"
|
|
52
|
-
echo "建议在 package.json 中添加以下命令之一:"
|
|
53
|
-
echo " - lint:check (推荐)"
|
|
54
|
-
echo " - lint"
|
|
55
|
-
echo " - type-check"
|
|
56
|
-
fi
|
|
57
38
|
- apk add --no-cache git curl jq
|
|
58
39
|
- git --version
|
|
59
40
|
- echo "Setting up Git authentication..."
|
|
@@ -65,15 +46,23 @@ lint:
|
|
|
65
46
|
- |
|
|
66
47
|
# 智能检测并运行 lint 命令
|
|
67
48
|
echo "检测可用的 lint 命令..."
|
|
49
|
+
LINT_FAILED=0
|
|
50
|
+
|
|
68
51
|
if npm run | grep -q "lint:check"; then
|
|
69
52
|
echo "✓ 运行 npm run lint:check"
|
|
70
|
-
npm run lint:check
|
|
53
|
+
if ! npm run lint:check; then
|
|
54
|
+
LINT_FAILED=1
|
|
55
|
+
fi
|
|
71
56
|
elif npm run | grep -q "lint"; then
|
|
72
57
|
echo "✓ 运行 npm run lint"
|
|
73
|
-
npm run lint
|
|
58
|
+
if ! npm run lint; then
|
|
59
|
+
LINT_FAILED=1
|
|
60
|
+
fi
|
|
74
61
|
elif npm run | grep -q "type-check"; then
|
|
75
62
|
echo "✓ 运行 npm run type-check"
|
|
76
|
-
npm run type-check
|
|
63
|
+
if ! npm run type-check; then
|
|
64
|
+
LINT_FAILED=1
|
|
65
|
+
fi
|
|
77
66
|
else
|
|
78
67
|
echo "⚠️ 未找到 lint 相关命令,跳过代码检查"
|
|
79
68
|
echo "建议在 package.json 中添加以下命令之一:"
|
|
@@ -81,6 +70,40 @@ lint:
|
|
|
81
70
|
echo " - lint"
|
|
82
71
|
echo " - type-check"
|
|
83
72
|
fi
|
|
73
|
+
|
|
74
|
+
# 如果 lint 失败,输出友好的中文提示
|
|
75
|
+
if [ $LINT_FAILED -eq 1 ]; then
|
|
76
|
+
echo ""
|
|
77
|
+
echo "======================================================================"
|
|
78
|
+
echo "❌ 代码质量检查未通过"
|
|
79
|
+
echo "======================================================================"
|
|
80
|
+
echo ""
|
|
81
|
+
echo "📋 发现了一些代码质量问题,需要修复后才能继续部署。"
|
|
82
|
+
echo ""
|
|
83
|
+
echo "🔧 快速修复方法:"
|
|
84
|
+
echo ""
|
|
85
|
+
echo " 1. 在本地运行自动修复:"
|
|
86
|
+
echo " npm run lint"
|
|
87
|
+
echo ""
|
|
88
|
+
echo " 2. 查看具体问题:"
|
|
89
|
+
echo " npm run lint:check"
|
|
90
|
+
echo ""
|
|
91
|
+
echo " 3. 修复后提交:"
|
|
92
|
+
echo " git add ."
|
|
93
|
+
echo " git commit -m \"fix: 修复代码质量问题\""
|
|
94
|
+
echo " git push"
|
|
95
|
+
echo ""
|
|
96
|
+
echo "💡 常见问题类型:"
|
|
97
|
+
echo " - TypeScript 类型安全问题(使用了 any 类型)"
|
|
98
|
+
echo " - 未使用的变量或导入"
|
|
99
|
+
echo " - async 函数缺少 await"
|
|
100
|
+
echo " - Promise 未正确处理"
|
|
101
|
+
echo ""
|
|
102
|
+
echo "📖 详细错误信息请查看上方输出"
|
|
103
|
+
echo "======================================================================"
|
|
104
|
+
echo ""
|
|
105
|
+
exit 1
|
|
106
|
+
fi
|
|
84
107
|
only:
|
|
85
108
|
- merge_requests
|
|
86
109
|
- main
|
|
@@ -214,7 +237,7 @@ deploy_dev:
|
|
|
214
237
|
- sshpass -p "$SSH_PASSWORD" ssh root@$TEST_SERVER_HOST "export REGISTRY_URL='$CI_REGISTRY' && export REGISTRY_USERNAME='$CI_REGISTRY_USER' && export REGISTRY_PASSWORD='$CI_REGISTRY_PASSWORD' && export APP_PORT='$APP_PORT' && cd $DEPLOY_DIR && chmod +x ci/deploy.sh && bash ci/deploy.sh $ENV_TYPE gitlab"
|
|
215
238
|
environment:
|
|
216
239
|
name: development
|
|
217
|
-
url: {{DEV_URL}}
|
|
240
|
+
url: "{{DEV_URL}}"
|
|
218
241
|
only:
|
|
219
242
|
- develop
|
|
220
243
|
|
|
@@ -284,7 +307,7 @@ deploy_prod:
|
|
|
284
307
|
- sshpass -p "$SSH_PASSWORD" ssh root@$PROD_SERVER_HOST "export REGISTRY_URL='$CI_REGISTRY' && export REGISTRY_USERNAME='$CI_REGISTRY_USER' && export REGISTRY_PASSWORD='$CI_REGISTRY_PASSWORD' && export APP_PORT='$APP_PORT' && cd $DEPLOY_DIR && chmod +x ci/deploy.sh && bash ci/deploy.sh $ENV_TYPE gitlab"
|
|
285
308
|
environment:
|
|
286
309
|
name: production
|
|
287
|
-
url: {{PROD_URL}}
|
|
310
|
+
url: "{{PROD_URL}}"
|
|
288
311
|
only:
|
|
289
312
|
- main
|
|
290
313
|
when: manual
|
|
@@ -351,7 +374,7 @@ rollback:
|
|
|
351
374
|
- sshpass -p "$SSH_PASSWORD" ssh root@$PROD_SERVER_HOST "cd $DEPLOY_DIR && export APP_PORT=$APP_PORT && docker-compose up -d"
|
|
352
375
|
environment:
|
|
353
376
|
name: production
|
|
354
|
-
url: {{PROD_URL}}
|
|
377
|
+
url: "{{PROD_URL}}"
|
|
355
378
|
when: manual
|
|
356
379
|
only:
|
|
357
380
|
- main
|
|
@@ -35,25 +35,6 @@ lint:
|
|
|
35
35
|
- .npm/
|
|
36
36
|
policy: pull-push
|
|
37
37
|
before_script:
|
|
38
|
-
- |
|
|
39
|
-
# 智能检测并运行 lint 命令
|
|
40
|
-
echo "检测可用的 lint 命令..."
|
|
41
|
-
if npm run | grep -q "lint:check"; then
|
|
42
|
-
echo "✓ 运行 npm run lint:check"
|
|
43
|
-
npm run lint:check
|
|
44
|
-
elif npm run | grep -q "lint"; then
|
|
45
|
-
echo "✓ 运行 npm run lint"
|
|
46
|
-
npm run lint
|
|
47
|
-
elif npm run | grep -q "type-check"; then
|
|
48
|
-
echo "✓ 运行 npm run type-check"
|
|
49
|
-
npm run type-check
|
|
50
|
-
else
|
|
51
|
-
echo "⚠️ 未找到 lint 相关命令,跳过代码检查"
|
|
52
|
-
echo "建议在 package.json 中添加以下命令之一:"
|
|
53
|
-
echo " - lint:check (推荐)"
|
|
54
|
-
echo " - lint"
|
|
55
|
-
echo " - type-check"
|
|
56
|
-
fi
|
|
57
38
|
- apk add --no-cache git curl jq
|
|
58
39
|
- git --version
|
|
59
40
|
- echo "Setting up Git authentication..."
|
|
@@ -65,15 +46,23 @@ lint:
|
|
|
65
46
|
- |
|
|
66
47
|
# 智能检测并运行 lint 命令
|
|
67
48
|
echo "检测可用的 lint 命令..."
|
|
49
|
+
LINT_FAILED=0
|
|
50
|
+
|
|
68
51
|
if npm run | grep -q "lint:check"; then
|
|
69
52
|
echo "✓ 运行 npm run lint:check"
|
|
70
|
-
npm run lint:check
|
|
53
|
+
if ! npm run lint:check; then
|
|
54
|
+
LINT_FAILED=1
|
|
55
|
+
fi
|
|
71
56
|
elif npm run | grep -q "lint"; then
|
|
72
57
|
echo "✓ 运行 npm run lint"
|
|
73
|
-
npm run lint
|
|
58
|
+
if ! npm run lint; then
|
|
59
|
+
LINT_FAILED=1
|
|
60
|
+
fi
|
|
74
61
|
elif npm run | grep -q "type-check"; then
|
|
75
62
|
echo "✓ 运行 npm run type-check"
|
|
76
|
-
npm run type-check
|
|
63
|
+
if ! npm run type-check; then
|
|
64
|
+
LINT_FAILED=1
|
|
65
|
+
fi
|
|
77
66
|
else
|
|
78
67
|
echo "⚠️ 未找到 lint 相关命令,跳过代码检查"
|
|
79
68
|
echo "建议在 package.json 中添加以下命令之一:"
|
|
@@ -81,6 +70,40 @@ lint:
|
|
|
81
70
|
echo " - lint"
|
|
82
71
|
echo " - type-check"
|
|
83
72
|
fi
|
|
73
|
+
|
|
74
|
+
# 如果 lint 失败,输出友好的中文提示
|
|
75
|
+
if [ $LINT_FAILED -eq 1 ]; then
|
|
76
|
+
echo ""
|
|
77
|
+
echo "======================================================================"
|
|
78
|
+
echo "❌ 代码质量检查未通过"
|
|
79
|
+
echo "======================================================================"
|
|
80
|
+
echo ""
|
|
81
|
+
echo "📋 发现了一些代码质量问题,需要修复后才能继续部署。"
|
|
82
|
+
echo ""
|
|
83
|
+
echo "🔧 快速修复方法:"
|
|
84
|
+
echo ""
|
|
85
|
+
echo " 1. 在本地运行自动修复:"
|
|
86
|
+
echo " npm run lint"
|
|
87
|
+
echo ""
|
|
88
|
+
echo " 2. 查看具体问题:"
|
|
89
|
+
echo " npm run lint:check"
|
|
90
|
+
echo ""
|
|
91
|
+
echo " 3. 修复后提交:"
|
|
92
|
+
echo " git add ."
|
|
93
|
+
echo " git commit -m \"fix: 修复代码质量问题\""
|
|
94
|
+
echo " git push"
|
|
95
|
+
echo ""
|
|
96
|
+
echo "💡 常见问题类型:"
|
|
97
|
+
echo " - TypeScript 类型安全问题(使用了 any 类型)"
|
|
98
|
+
echo " - 未使用的变量或导入"
|
|
99
|
+
echo " - async 函数缺少 await"
|
|
100
|
+
echo " - Promise 未正确处理"
|
|
101
|
+
echo ""
|
|
102
|
+
echo "📖 详细错误信息请查看上方输出"
|
|
103
|
+
echo "======================================================================"
|
|
104
|
+
echo ""
|
|
105
|
+
exit 1
|
|
106
|
+
fi
|
|
84
107
|
only:
|
|
85
108
|
- merge_requests
|
|
86
109
|
- main
|
|
@@ -210,7 +233,7 @@ deploy_dev:
|
|
|
210
233
|
- sshpass -p "$SSH_PASSWORD" ssh root@$TEST_SERVER_HOST "export DOCKER_HUB_USERNAME='$DOCKER_HUB_USERNAME' && export DOCKER_HUB_PASSWORD='$DOCKER_HUB_PASSWORD' && export APP_PORT='$APP_PORT' && cd $DEPLOY_DIR && chmod +x ci/deploy.sh && bash ci/deploy.sh $ENV_TYPE $REGISTRY_TYPE"
|
|
211
234
|
environment:
|
|
212
235
|
name: development
|
|
213
|
-
url: {{DEV_URL}}
|
|
236
|
+
url: "{{DEV_URL}}"
|
|
214
237
|
only:
|
|
215
238
|
- develop
|
|
216
239
|
|
|
@@ -277,7 +300,7 @@ deploy_prod:
|
|
|
277
300
|
- sshpass -p "$SSH_PASSWORD" ssh root@$PROD_SERVER_HOST "export DOCKER_HUB_USERNAME='$DOCKER_HUB_USERNAME' && export DOCKER_HUB_PASSWORD='$DOCKER_HUB_PASSWORD' && export APP_PORT='$APP_PORT' && cd $DEPLOY_DIR && chmod +x ci/deploy.sh && bash ci/deploy.sh $ENV_TYPE $REGISTRY_TYPE"
|
|
278
301
|
environment:
|
|
279
302
|
name: production
|
|
280
|
-
url: {{PROD_URL}}
|
|
303
|
+
url: "{{PROD_URL}}"
|
|
281
304
|
only:
|
|
282
305
|
- main
|
|
283
306
|
when: manual
|
|
@@ -341,7 +364,7 @@ rollback:
|
|
|
341
364
|
- sshpass -p "$SSH_PASSWORD" ssh root@$PROD_SERVER_HOST "cd $DEPLOY_DIR && export APP_PORT=$APP_PORT && docker-compose up -d"
|
|
342
365
|
environment:
|
|
343
366
|
name: production
|
|
344
|
-
url: {{PROD_URL}}
|
|
367
|
+
url: "{{PROD_URL}}"
|
|
345
368
|
when: manual
|
|
346
369
|
only:
|
|
347
370
|
- main
|