serverless / serverless-tencent

⚡️ 🐧 Serverless Tencent CLI 及中文讨论社区
https://cn.serverless.com
63 stars 26 forks source link

serverless.yaml 格式错误,部署失败的退出码为 0 #167

Closed KudouRan closed 2 years ago

KudouRan commented 2 years ago

BUG 描述:

serverless.yaml 格式错误,部署失败的退出码为 0。这在手动部署时没有影响,但是使用 Github Action 时,无法捕获到错误。

复现步骤:

  1. 省略了部分信息,配置错误处在 inputs.environment.variables 中变量重复
inputs:
  environment:
    variables:
      TENCENT_SECRET_KEY: ksjadkasdhk
      TENCENT_SECRET_KEY: asjdlk
  1. 执行 slt deploy --debug,得到以下结果
$ slt deploy --debug
Error: The serverless.yml file has incorrect format. Details: duplicated mapping key in "D:\Users\Desktop\git\BiliTools\serverless.yaml" (18:7)

 15 |   environment:
 16 |     variables:
 17 |       TENCENT_SECRET_KEY: ksjadkasdhk
 18 |       TENCENT_SECRET_KEY: asjdlk
------------^
 19 |   # For more information: https://git ...
  1. 获取退出码 echo $?, 得到 0

预期结果:

$ echo $?
1

实际结果:

$ echo $?
0

调试信息:

环境版本 ```yaml - requestId: ... # 如果在异常信息中显示请提供 - traceId: ... # 如果在异常信息中显示请提供 - 操作系统(OS): Windows 11 22000.556 # 如: MacOS 11.2.3 - Node 版本: 16.13.2 # 如: 12.20.1 # 使用 "serverless --version" 查看serverless版本信息 - Framework Core: 3.7.9 - Plugin: 6.1.6 - SDK: 4.3.2 - tencent version: 3.21.2(npm) ```

serverless.yml 配置 ```yaml # 在这里填写完整的serverless.yml配置信息 component: scf # 必填内容 name: asdjklasdjkasd org: '' app: '' stage: production inputs: name: asdasd src: ./dist runtime: Nodejs12.16 region: ap-guangzhou description: asdasd handler: index.main_handler memorySize: 64 timeout: 100 environment: variables: TENCENT_SECRET_KEY: ksjadkasdhk TENCENT_SECRET_KEY: asjdlk ```

DEBUG 输出 ```yml # 添加环境变量 SLS_DEBUG=* 并重新执行命令,然后复制命令以及控制台输出粘贴在这里。 Error: The serverless.yml file has incorrect format. Details: duplicated mapping key in "D:\Users\Desktop\git\BiliTools\serverless.yaml" (18:7) 15 | environment: 16 | variables: 17 | TENCENT_SECRET_KEY: ksjadkasdhk 18 | TENCENT_SECRET_KEY: asjdlk ------------^ 19 | # For more information: https://git ... at $ (C:\Users\catlair\AppData\Roaming\npm\pnpm-global\5\node_modules\.pnpm\registry.npmmirror.com+serverless-tencent@3.21.2\node_modules\serverless-tencent\dist\index.js:1:66980) at C:\Users\catlair\AppData\Roaming\npm\pnpm-global\5\node_modules\.pnpm\registry.npmmirror.com+memoizee@0.4.15\node_modules\memoizee\lib\configure-map.js:60:41 at e.exports (C:\Users\catlair\AppData\Roaming\npm\pnpm-global\5\node_modules\.pnpm\registry.npmmirror.com+serverless-tencent@3.21.2\node_modules\serverless-tencent\dist\index.js:1:54319) at e.exports (C:\Users\catlair\AppData\Roaming\npm\pnpm-global\5\node_modules\.pnpm\registry.npmmirror.com+serverless-tencent@3.21.2\node_modules\serverless-tencent\dist\index.js:1:41553) at C:\Users\catlair\AppData\Roaming\npm\pnpm-global\5\node_modules\.pnpm\registry.npmmirror.com+serverless-tencent@3.21.2\node_modules\serverless-tencent\bin\serverless-tencent:9:10 at Object. (C:\Users\catlair\AppData\Roaming\npm\pnpm-global\5\node_modules\.pnpm\registry.npmmirror.com+serverless-tencent@3.21.2\node_modules\serverless-tencent\bin\serverless-tencent:10:3) at Module._compile (node:internal/modules/cjs/loader:1101:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10) at Module.load (node:internal/modules/cjs/loader:981:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) ```

额外信息

ole3021 commented 2 years ago

@KudouRan 感谢反馈,我们会在下个版本中修复之问题,并仔细检查逻辑中 是否还存在异常时 exitCode 为0 的情况, 在修复后会在这里更新。