@cloudbase/cli 2.0.12 → 2.0.13

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.
Files changed (227) hide show
  1. package/.vscode/settings.json +3 -0
  2. package/lib/run/service/deployPackage.js +2 -9
  3. package/lib/utils/debug-logger.js +30 -0
  4. package/lib/utils/net/cloud-api-request.js +7 -1
  5. package/lib/utils/net/http-request.js +16 -5
  6. package/package.json +1 -1
  7. package/types/utils/debug-logger.d.ts +1 -0
  8. package/types/utils/net/http-request.d.ts +6 -2
  9. package/src/auth/index.ts +0 -2
  10. package/src/auth/login.ts +0 -91
  11. package/src/auth/logout.ts +0 -7
  12. package/src/commands/account/index.ts +0 -2
  13. package/src/commands/account/login.ts +0 -192
  14. package/src/commands/account/logout.ts +0 -24
  15. package/src/commands/common.ts +0 -246
  16. package/src/commands/env/base.ts +0 -90
  17. package/src/commands/env/create.ts +0 -92
  18. package/src/commands/env/domain.ts +0 -186
  19. package/src/commands/env/index.ts +0 -4
  20. package/src/commands/env/login.ts +0 -235
  21. package/src/commands/framework/index.ts +0 -124
  22. package/src/commands/functions/alias/getRoute.ts +0 -76
  23. package/src/commands/functions/alias/index.ts +0 -2
  24. package/src/commands/functions/alias/setRoute.ts +0 -82
  25. package/src/commands/functions/code-download.ts +0 -100
  26. package/src/commands/functions/code-update.ts +0 -62
  27. package/src/commands/functions/concurrency/delete.ts +0 -45
  28. package/src/commands/functions/concurrency/index.ts +0 -3
  29. package/src/commands/functions/concurrency/list.ts +0 -58
  30. package/src/commands/functions/concurrency/set.ts +0 -47
  31. package/src/commands/functions/config-update.ts +0 -76
  32. package/src/commands/functions/copy.ts +0 -62
  33. package/src/commands/functions/delete.ts +0 -79
  34. package/src/commands/functions/deploy.ts +0 -293
  35. package/src/commands/functions/detail.ts +0 -138
  36. package/src/commands/functions/index.ts +0 -16
  37. package/src/commands/functions/invoke.ts +0 -121
  38. package/src/commands/functions/layer/bind.ts +0 -182
  39. package/src/commands/functions/layer/common.ts +0 -8
  40. package/src/commands/functions/layer/create.ts +0 -49
  41. package/src/commands/functions/layer/delete.ts +0 -73
  42. package/src/commands/functions/layer/download.ts +0 -92
  43. package/src/commands/functions/layer/index.ts +0 -7
  44. package/src/commands/functions/layer/list.ts +0 -94
  45. package/src/commands/functions/layer/sort.ts +0 -76
  46. package/src/commands/functions/list.ts +0 -68
  47. package/src/commands/functions/log.ts +0 -148
  48. package/src/commands/functions/run.ts +0 -249
  49. package/src/commands/functions/trigger-create.ts +0 -79
  50. package/src/commands/functions/trigger-delete.ts +0 -105
  51. package/src/commands/functions/version/index.ts +0 -2
  52. package/src/commands/functions/version/list.ts +0 -73
  53. package/src/commands/functions/version/publish.ts +0 -43
  54. package/src/commands/gateway/create.ts +0 -109
  55. package/src/commands/gateway/delete.ts +0 -81
  56. package/src/commands/gateway/domain.ts +0 -159
  57. package/src/commands/gateway/index.ts +0 -5
  58. package/src/commands/gateway/list.ts +0 -76
  59. package/src/commands/gateway/switch.ts +0 -107
  60. package/src/commands/helpers/index.ts +0 -3
  61. package/src/commands/helpers/init.ts +0 -431
  62. package/src/commands/helpers/new.ts +0 -117
  63. package/src/commands/helpers/open.ts +0 -67
  64. package/src/commands/hosting/hosting.ts +0 -360
  65. package/src/commands/hosting/index.ts +0 -1
  66. package/src/commands/index.ts +0 -13
  67. package/src/commands/lowcode/app.ts +0 -34
  68. package/src/commands/lowcode/comps.ts +0 -325
  69. package/src/commands/lowcode/index.ts +0 -2
  70. package/src/commands/lowcode/utils.ts +0 -25
  71. package/src/commands/run/create.ts +0 -153
  72. package/src/commands/run/delete.ts +0 -77
  73. package/src/commands/run/image/common.ts +0 -8
  74. package/src/commands/run/image/delete.ts +0 -68
  75. package/src/commands/run/image/download.ts +0 -68
  76. package/src/commands/run/image/index.ts +0 -5
  77. package/src/commands/run/image/list.ts +0 -84
  78. package/src/commands/run/image/upload.ts +0 -76
  79. package/src/commands/run/index.ts +0 -7
  80. package/src/commands/run/list.ts +0 -83
  81. package/src/commands/run/service/config.ts +0 -81
  82. package/src/commands/run/service/create.ts +0 -122
  83. package/src/commands/run/service/deploy.ts +0 -125
  84. package/src/commands/run/service/index.ts +0 -5
  85. package/src/commands/run/service/list.ts +0 -94
  86. package/src/commands/run/service/update.ts +0 -108
  87. package/src/commands/run/standalonegateway/common.ts +0 -8
  88. package/src/commands/run/standalonegateway/create.ts +0 -85
  89. package/src/commands/run/standalonegateway/destroy.ts +0 -59
  90. package/src/commands/run/standalonegateway/index.ts +0 -5
  91. package/src/commands/run/standalonegateway/list.ts +0 -53
  92. package/src/commands/run/standalonegateway/package.ts +0 -62
  93. package/src/commands/run/standalonegateway/turn.ts +0 -63
  94. package/src/commands/run/version/common.ts +0 -8
  95. package/src/commands/run/version/create.ts +0 -369
  96. package/src/commands/run/version/delete.ts +0 -64
  97. package/src/commands/run/version/index.ts +0 -5
  98. package/src/commands/run/version/list.ts +0 -91
  99. package/src/commands/run/version/modify.ts +0 -137
  100. package/src/commands/run/version/update.ts +0 -398
  101. package/src/commands/smart.ts +0 -132
  102. package/src/commands/storage/index.ts +0 -1
  103. package/src/commands/storage/storage.ts +0 -464
  104. package/src/commands/third/index.ts +0 -1
  105. package/src/commands/third/thirdAttach.ts +0 -49
  106. package/src/completion/index.ts +0 -13
  107. package/src/constant.ts +0 -154
  108. package/src/decorators/captureError.ts +0 -25
  109. package/src/decorators/constants.ts +0 -12
  110. package/src/decorators/deprecate.ts +0 -25
  111. package/src/decorators/guard.ts +0 -42
  112. package/src/decorators/index.ts +0 -7
  113. package/src/decorators/injectParams.ts +0 -54
  114. package/src/decorators/params/common.ts +0 -28
  115. package/src/decorators/params/index.ts +0 -35
  116. package/src/env/domain.ts +0 -33
  117. package/src/env/index.ts +0 -63
  118. package/src/env/login.ts +0 -80
  119. package/src/error.ts +0 -36
  120. package/src/function/alias.ts +0 -43
  121. package/src/function/base.ts +0 -253
  122. package/src/function/code.ts +0 -55
  123. package/src/function/concurrency.ts +0 -57
  124. package/src/function/create.ts +0 -78
  125. package/src/function/delete.ts +0 -42
  126. package/src/function/index.ts +0 -11
  127. package/src/function/layer/attach.ts +0 -68
  128. package/src/function/layer/create.ts +0 -63
  129. package/src/function/layer/delete.ts +0 -21
  130. package/src/function/layer/download.ts +0 -54
  131. package/src/function/layer/index.ts +0 -7
  132. package/src/function/layer/list.ts +0 -32
  133. package/src/function/layer/sort.ts +0 -24
  134. package/src/function/trigger.ts +0 -97
  135. package/src/function/update.ts +0 -35
  136. package/src/function/version.ts +0 -39
  137. package/src/function/vpc.ts +0 -22
  138. package/src/gateway/index.ts +0 -137
  139. package/src/help.ts +0 -50
  140. package/src/hosting.ts +0 -212
  141. package/src/index.ts +0 -13
  142. package/src/logger.ts +0 -17
  143. package/src/run/create.ts +0 -23
  144. package/src/run/delete.ts +0 -15
  145. package/src/run/image/build.ts +0 -36
  146. package/src/run/image/delete.ts +0 -14
  147. package/src/run/image/index.ts +0 -4
  148. package/src/run/image/info.ts +0 -27
  149. package/src/run/image/list.ts +0 -23
  150. package/src/run/index.ts +0 -8
  151. package/src/run/list.ts +0 -30
  152. package/src/run/repo.ts +0 -25
  153. package/src/run/service/common.ts +0 -311
  154. package/src/run/service/config.ts +0 -77
  155. package/src/run/service/create.ts +0 -52
  156. package/src/run/service/deployPackage.ts +0 -65
  157. package/src/run/service/index.ts +0 -7
  158. package/src/run/service/list.ts +0 -29
  159. package/src/run/service/showLogs.ts +0 -98
  160. package/src/run/service/update.ts +0 -82
  161. package/src/run/standalonegateway/create.ts +0 -24
  162. package/src/run/standalonegateway/destroy.ts +0 -19
  163. package/src/run/standalonegateway/index.ts +0 -5
  164. package/src/run/standalonegateway/list.ts +0 -74
  165. package/src/run/standalonegateway/package/index.ts +0 -1
  166. package/src/run/standalonegateway/package/list.ts +0 -24
  167. package/src/run/standalonegateway/turn/index.ts +0 -2
  168. package/src/run/standalonegateway/turn/off.ts +0 -19
  169. package/src/run/standalonegateway/turn/on.ts +0 -19
  170. package/src/run/version/create.ts +0 -68
  171. package/src/run/version/delete.ts +0 -16
  172. package/src/run/version/index.ts +0 -6
  173. package/src/run/version/list.ts +0 -17
  174. package/src/run/version/modify.ts +0 -17
  175. package/src/run/version/repo.ts +0 -28
  176. package/src/run/version/update.ts +0 -59
  177. package/src/storage.ts +0 -114
  178. package/src/third/index.ts +0 -13
  179. package/src/types.ts +0 -672
  180. package/src/utils/auth.ts +0 -15
  181. package/src/utils/checkTcbrEnv.ts +0 -69
  182. package/src/utils/cli-table.ts +0 -23
  183. package/src/utils/commonParamsCheck.ts +0 -65
  184. package/src/utils/config.ts +0 -39
  185. package/src/utils/env.ts +0 -244
  186. package/src/utils/fs/del.ts +0 -5
  187. package/src/utils/fs/index.ts +0 -71
  188. package/src/utils/function-packer.ts +0 -97
  189. package/src/utils/index.ts +0 -25
  190. package/src/utils/log.ts +0 -82
  191. package/src/utils/net/cloud-api-request.ts +0 -62
  192. package/src/utils/net/credential.ts +0 -53
  193. package/src/utils/net/http-request.ts +0 -84
  194. package/src/utils/net/index.ts +0 -5
  195. package/src/utils/net/manager-service.ts +0 -36
  196. package/src/utils/net/proxy.ts +0 -6
  197. package/src/utils/notice.ts +0 -28
  198. package/src/utils/output/highlight.ts +0 -5
  199. package/src/utils/output/index.ts +0 -3
  200. package/src/utils/output/link.ts +0 -10
  201. package/src/utils/output/loading.ts +0 -82
  202. package/src/utils/parallel.ts +0 -82
  203. package/src/utils/platform/index.ts +0 -3
  204. package/src/utils/platform/mac.ts +0 -21
  205. package/src/utils/platform/os.ts +0 -64
  206. package/src/utils/platform/port.ts +0 -10
  207. package/src/utils/progress-bar.ts +0 -38
  208. package/src/utils/prompt/index.ts +0 -1
  209. package/src/utils/prompt/select.ts +0 -60
  210. package/src/utils/reporter/agree.ts +0 -20
  211. package/src/utils/reporter/download.ts +0 -26
  212. package/src/utils/reporter/index.ts +0 -3
  213. package/src/utils/reporter/usage.ts +0 -20
  214. package/src/utils/store/auth.ts +0 -49
  215. package/src/utils/store/common.ts +0 -8
  216. package/src/utils/store/db.ts +0 -68
  217. package/src/utils/store/index.ts +0 -5
  218. package/src/utils/store/usage.ts +0 -12
  219. package/src/utils/tcbrApi/callTcbrApi.ts +0 -28
  220. package/src/utils/tcbrApi/index.ts +0 -1
  221. package/src/utils/template.ts +0 -170
  222. package/src/utils/tools/encoding.ts +0 -8
  223. package/src/utils/tools/index.ts +0 -4
  224. package/src/utils/tools/object.ts +0 -33
  225. package/src/utils/tools/time.ts +0 -38
  226. package/src/utils/tools/uid.ts +0 -19
  227. package/src/utils/validator.ts +0 -65
@@ -1,398 +0,0 @@
1
- import { prompt } from 'enquirer'
2
- import { statSync, writeFileSync, unlinkSync } from 'fs'
3
- import { zipDir } from '@cloudbase/toolbox'
4
- import { Command, ICommand } from '../../common'
5
- import { CloudBaseError } from '../../../error'
6
- import {
7
- uploadZip,
8
- createBuild,
9
- updateVersion,
10
- listRepo,
11
- listImage,
12
- listBranch,
13
- basicOperate,
14
- logCreate,
15
- describeRunVersion
16
- } from '../../../run'
17
- import { checkTcbrEnv, loadingFactory, logEnvCheck, pagingSelectPromp, random } from '../../../utils'
18
- import { InjectParams, EnvId, ArgsOptions } from '../../../decorators'
19
- import { versionCommonOptions } from './common'
20
- import { EnumEnvCheck } from '../../../constant'
21
-
22
- const uploadTypeMap = {
23
- 本地代码: 'package',
24
- 代码库拉取: 'repository',
25
- 镜像拉取: 'image'
26
- }
27
-
28
- const memMap = {
29
- 0.25: [2, 8],
30
- 0.5: [2, 8],
31
- 1: [1, 8],
32
- 2: [2, 8],
33
- 4: [2, 8],
34
- 8: [2, 4],
35
- 16: [2, 4]
36
- }
37
-
38
- const describeVersion = (base: any) => {
39
- console.log('目前的配置如下')
40
- console.log(`镜像名 ${base.ImageUrl.split(':')[1]}`)
41
- console.log(
42
- `上传方式 ${
43
- base.UploadType === 'image'
44
- ? '镜像拉取'
45
- : base.UploadType === 'package'
46
- ? '本地代码上传'
47
- : '代码仓库拉取'
48
- }`
49
- )
50
- console.log(`监听端口 ${base.VersionPort}`)
51
- console.log(`扩缩容条件 ${base.PolicyType}使用率 > ${base.PolicyThreshold}`)
52
- console.log(`规格 cpu ${base.Cpu}核 mem ${base.Mem}G`)
53
- console.log(`InitialDelaySeconds ${base.InitialDelaySeconds}`)
54
- console.log(`日志采集路径 ${base.InitialDelaySeconds}`)
55
- console.log(`环境变量 ${base.EnvParams}`)
56
- }
57
-
58
- /* eslint complexity: ["error", 40] */
59
- @ICommand()
60
- export class UpdateVersion extends Command {
61
- get options() {
62
- return {
63
- ...versionCommonOptions('update'),
64
- options: [
65
- {
66
- flags: '-e, --envId <envId>',
67
- desc: '环境 Id'
68
- },
69
- {
70
- flags: '-s, --serviceName <serviceName>',
71
- desc: '托管服务 name'
72
- },
73
- {
74
- flags: '-v, --versionName <versionName>',
75
- desc: '版本名称 Name'
76
- },
77
- {
78
- flags: '-p, --path <path>',
79
- desc: '本地代码路径,选择本地代码上传时使用'
80
- },
81
- {
82
- flags: '--repo <repo>',
83
- desc: '仓库信息,形如 channel|fullName|branch,channel为github、gitlab或gitee,选择代码库拉取时使用'
84
- },
85
- {
86
- flags: '-i, --image <image>',
87
- desc: '镜像url,选择镜像拉取时使用'
88
- },
89
- {
90
- flags: '--port <port>',
91
- desc: '监听端口,默认为80'
92
- },
93
- {
94
- flags: '-f, --flow <flow>',
95
- desc: '流量策略(%),0或100,默认为0'
96
- },
97
- {
98
- flags: '-m, --remark <remark>',
99
- desc: '备注信息,默认为空'
100
- },
101
- {
102
- flags: '-c, --cpu <cpu>',
103
- desc: 'cpu规格(核数),默认为0.5'
104
- },
105
- {
106
- flags: '--mem <mem>',
107
- desc: '内存规格(G),默认为1'
108
- },
109
- {
110
- flags: '--copy <copy>',
111
- desc: '副本个数,格式为最小个数~最大个数,默认为0~50'
112
- },
113
- {
114
- flags: '--policy <policy>',
115
- desc: '扩缩容条件,格式为条件类型|条件比例(%),cpu条件为cpu,内存为条件mem,默认为cpu|60'
116
- },
117
- {
118
- flags: '--dockerFile <dockerFile>',
119
- desc: 'dockerfile名称,非镜像拉取时使用,默认为Dockerfile'
120
- },
121
- {
122
- flags: '-l, --log <log>',
123
- desc: '日志采集路径,默认为stdout'
124
- },
125
- {
126
- flags: '-d, --delay <delay>',
127
- desc: '初始延迟时间(秒),默认为2'
128
- },
129
- {
130
- flags: '--env <env>',
131
- desc: '环境变量,格式为xx=a&yy=b,默认为空'
132
- }
133
- ],
134
- desc: '创建云开发环境下云托管服务的版本'
135
- }
136
- }
137
-
138
- @InjectParams()
139
- async execute(@EnvId() envId, @ArgsOptions() options) {
140
- let envCheckType = await checkTcbrEnv(options.envId, false)
141
- if(envCheckType !== EnumEnvCheck.EnvFit) {
142
- logEnvCheck(envId, envCheckType)
143
- return
144
- }
145
-
146
- let {
147
- serviceName = '',
148
- versionName = '',
149
- path: _path = '',
150
- repo: _repo = '',
151
- image: _image = '',
152
- port: _port = '80',
153
- flow: _flow = '0',
154
- remark: _remark = '',
155
- cpu: _cpu = '0.5',
156
- mem: _mem = '1',
157
- copy: _copy = '0~50',
158
- policy: _policy = 'cpu|60',
159
- dockerfile: _dockerfile = 'Dockerfile',
160
- log: _log = 'stdout',
161
- delay: _delay = '2',
162
- env: _env = ''
163
- } = options
164
-
165
- if (!serviceName || !versionName) {
166
- throw new CloudBaseError('必须输入 serviceName 和 versionName')
167
- }
168
- let path: string
169
- let repositoryType: string
170
- let branch: string
171
- let codeDetail: { Name: { Name: string; FullName: string } }
172
- let imageInfo: { ImageUrl: string }
173
- let containerPort: number
174
- let flowRatio: number
175
- let versionRemark: string
176
- let cpu: number
177
- let mem: number
178
- let minNum: number
179
- let maxNum: number
180
- let policyType: string
181
- let policyThreshold: number
182
- let customLogs = 'stdout'
183
- let dockerfilePath = 'Dockerfile'
184
- let initialDelaySeconds = 2
185
- let envParams = '{}'
186
-
187
- const uid = random(4)
188
-
189
- const loading = loadingFactory()
190
-
191
- // 上传方式
192
- if (_path) {
193
- path = _path
194
-
195
- if (statSync(path).isDirectory()) {
196
- loading.start('正在压缩中')
197
- await zipDir(path, `./code${uid}.zip`)
198
- loading.succeed('压缩完成')
199
- path = `./code${uid}.zip`
200
- }
201
- } else if (_repo) {
202
- const repo = _repo.split('|')
203
-
204
- repositoryType = repo[0]
205
-
206
- codeDetail.Name.FullName = repo[1]
207
- codeDetail.Name.Name = repo[1].split('/')[1]
208
-
209
- branch = repo[2]
210
- } else if (_image) {
211
- imageInfo = {
212
- ImageUrl: _image
213
- }
214
- } else {
215
- throw new CloudBaseError('请至少选择一个上传方式')
216
- }
217
-
218
- // 端口号
219
- containerPort = Number(_port)
220
- if (isNaN(containerPort)) {
221
- throw new CloudBaseError('请输入合法的端口号')
222
- }
223
-
224
- // 流量策略
225
- flowRatio = Number(_flow)
226
- if (![100, 0].includes(flowRatio)) {
227
- throw new CloudBaseError('请输入合法的流量策略')
228
- }
229
-
230
- // 备注
231
- versionRemark = _remark
232
-
233
- // 规格
234
- cpu = Number(_cpu)
235
- mem = Number(_mem)
236
- if (isNaN(cpu) || isNaN(mem)) {
237
- throw new CloudBaseError('请输入合法的cpu和内存规格')
238
- }
239
-
240
- // 副本个数
241
- minNum = Number(_copy.split('~')[0])
242
- maxNum = Number(_copy.split('~')[1])
243
- if (isNaN(maxNum) || isNaN(minNum)) {
244
- throw new CloudBaseError('请输入合法的副本个数')
245
- }
246
-
247
- // 扩缩容条件
248
- policyType = _policy.split('|')[0]
249
- policyThreshold = Number(_policy.split('|')[1])
250
- if (!['cpu', 'mem'].includes(policyType) || isNaN(policyThreshold)) {
251
- throw new CloudBaseError('请输入合法的扩缩容条件')
252
- }
253
-
254
- // dockerfile 名称,在非镜像拉取时使用
255
- dockerfilePath = _dockerfile
256
-
257
- // 日志采集路径
258
- customLogs = _log
259
-
260
- // 初始延迟时间
261
- initialDelaySeconds = Number(_delay)
262
- if (isNaN(initialDelaySeconds)) {
263
- throw new CloudBaseError('请输入合法的延迟时间')
264
- }
265
-
266
- // 环境变量
267
- let _envParams = {}
268
- _env.split('&').forEach((item) => {
269
- _envParams[item.split('=')[0]] = item.split('=')[1]
270
- })
271
- envParams = JSON.stringify(_envParams)
272
-
273
- loading.start('加载中...')
274
-
275
- let res = ''
276
- let runId = ''
277
- if (_path) {
278
- loading.start('正在上传中')
279
- let { PackageName, PackageVersion, UploadHeaders, UploadUrl } = await createBuild({
280
- envId,
281
- serviceName
282
- })
283
- await uploadZip(path, UploadUrl, UploadHeaders[0])
284
- loading.succeed('上传成功')
285
- if (path === `./code${uid}.zip`) {
286
- loading.start('删除本地压缩包')
287
- unlinkSync(path)
288
- loading.succeed('成功删除本地压缩包')
289
- }
290
-
291
- let response = await updateVersion({
292
- envId,
293
- serverName: serviceName,
294
- versionName,
295
- containerPort,
296
- uploadType: 'package',
297
- packageName: PackageName,
298
- packageVersion: PackageVersion,
299
- flowRatio,
300
- versionRemark,
301
-
302
- enableUnion: true,
303
- cpu,
304
- mem,
305
- minNum,
306
- maxNum,
307
- policyType,
308
- policyThreshold,
309
-
310
- customLogs,
311
- dockerfilePath,
312
- envParams,
313
- initialDelaySeconds
314
- })
315
- res = response.Result
316
- runId = response.RunId
317
- } else if (_image) {
318
- let response = await updateVersion({
319
- envId,
320
- serverName: serviceName,
321
- versionName,
322
- containerPort,
323
- uploadType: 'image',
324
- imageInfo,
325
- flowRatio,
326
- versionRemark,
327
-
328
- enableUnion: true,
329
- cpu,
330
- mem,
331
- minNum,
332
- maxNum,
333
- policyType,
334
- policyThreshold,
335
-
336
- customLogs,
337
- envParams,
338
- initialDelaySeconds
339
- })
340
- res = response.Result
341
- runId = response.RunId
342
- } else {
343
- let response = await updateVersion({
344
- envId,
345
- serverName: serviceName,
346
- versionName,
347
- containerPort,
348
- uploadType: 'repository',
349
- repositoryType,
350
- branch,
351
- codeDetail,
352
- flowRatio,
353
- versionRemark,
354
-
355
- enableUnion: true,
356
- cpu,
357
- mem,
358
- minNum,
359
- maxNum,
360
- policyType,
361
- policyThreshold,
362
-
363
- customLogs,
364
- dockerfilePath,
365
- envParams,
366
- initialDelaySeconds
367
- })
368
- res = response.Result
369
- runId = response.RunId
370
- }
371
- if (res !== 'succ') throw new CloudBaseError('提交构建任务失败')
372
-
373
- loading.start('正在部署中')
374
-
375
- while (true) {
376
- let { Percent, Status } = await basicOperate({ envId, runId })
377
-
378
- if (Status === 'build_fail') {
379
- let logs = await logCreate({ envId, runId })
380
- writeFileSync(
381
- `./log${runId}`,
382
- logs.reduce((res, item) => res + item + '\n', '')
383
- )
384
- throw new CloudBaseError(`构建失败,日志写入./log${runId}中`)
385
- } else if (Status !== 'updating') {
386
- break
387
- }
388
-
389
- loading.start(`目前构建进度${Percent}%`)
390
-
391
- await new Promise((resolve) => {
392
- setTimeout((_) => resolve('again'), 2000)
393
- })
394
- }
395
-
396
- loading.succeed('构建成功')
397
- }
398
- }
@@ -1,132 +0,0 @@
1
- import fs from 'fs'
2
- import os from 'os'
3
- import _ from 'lodash'
4
- import path from 'path'
5
- import chalk from 'chalk'
6
- import { prompt } from 'enquirer'
7
- import { run } from '@cloudbase/framework-core'
8
- import { ConfigParser, getRegion } from '@cloudbase/toolbox'
9
- import {
10
- logger,
11
- getSelectedEnv,
12
- authSupevisor,
13
- loadingFactory,
14
- getSelectRegion,
15
- checkTcbService,
16
- getCloudBaseConfig,
17
- downloadTemplate,
18
- initProjectConfig
19
- } from '../utils'
20
- import * as Hosting from '../hosting'
21
- import * as Function from '../function'
22
- import { checkLogin } from '../auth'
23
-
24
- /**
25
- * 智能命令
26
- */
27
- export async function smartDeploy() {
28
- const loading = loadingFactory()
29
- loading.start('环境检测中')
30
-
31
- // 检查登录
32
- await checkLogin()
33
-
34
- // 检查是否开通 TCB 服务
35
- await checkTcbService()
36
-
37
- const files = fs.readdirSync(process.cwd())
38
-
39
- loading.stop()
40
-
41
- // 获取当前目录
42
- const home = os.homedir()
43
- const current = process.cwd()
44
- let relative = current
45
- if (current.indexOf(home) > -1) {
46
- relative = path.relative(home, current)
47
- }
48
-
49
- // 当期区域
50
- let region = await getRegion(true)
51
-
52
- // 当前目录为空,执行初始化项目操作
53
- if (!files.length) {
54
- logger.info('当前目录为空,初始化云开发项目\n')
55
- // 先选择 region,再选择环境
56
- region = await getSelectRegion()
57
- const envId = await getSelectedEnv()
58
- // 下载模板
59
- const projectPath = await downloadTemplate()
60
- await initProjectConfig(envId, region, projectPath)
61
- // 成功提示
62
- logger.success('初始化项目成功!\n')
63
- }
64
-
65
- // 初始化项目成功,或当前目录已经存在项目,继续使用 Framework 执行部署
66
- const { setup } = await prompt<any>({
67
- type: 'confirm',
68
- name: 'setup',
69
- message: `是否使用云开发部署当前项目 <${chalk.bold.cyan(relative)}> ?`,
70
- initial: true
71
- })
72
-
73
- if (!setup) {
74
- return
75
- }
76
-
77
- // 检测是否有 cloudbase 配置
78
- const config = await getCloudBaseConfig()
79
- let envId = config?.envId
80
-
81
- // 配置文件中不存在 region,选择 region
82
- if (!config?.region && !region) {
83
- region = await getSelectRegion()
84
- }
85
-
86
- // 配置文件不存在
87
- if (!envId) {
88
- envId = await getSelectedEnv()
89
- fs.writeFileSync(
90
- path.join(process.cwd(), 'cloudbaserc.json'),
91
- JSON.stringify({
92
- envId,
93
- region,
94
- version: '2.0',
95
- $schema: 'https://framework-1258016615.tcloudbaseapp.com/schema/latest.json'
96
- })
97
- )
98
- }
99
-
100
- // 把 region 写入到配置文件中
101
- const parser = new ConfigParser()
102
- parser.update('region', region)
103
-
104
- // 调用 Framework
105
- await callFramework(envId)
106
- }
107
-
108
- async function callFramework(envId: string) {
109
- const loginState = await authSupevisor.getLoginState()
110
- const { token, secretId, secretKey } = loginState
111
- const config = await getCloudBaseConfig()
112
-
113
- await run(
114
- {
115
- projectPath: process.cwd(),
116
- cloudbaseConfig: {
117
- secretId,
118
- secretKey,
119
- token,
120
- envId
121
- },
122
- config,
123
- logLevel: process.argv.includes('--verbose') ? 'debug' : 'info',
124
- resourceProviders: {
125
- hosting: Hosting,
126
- function: Function
127
- }
128
- },
129
- 'deploy',
130
- ''
131
- )
132
- }
@@ -1 +0,0 @@
1
- export * from './storage'