Yaml 如何使用gitlab-ci.yml文件中的curl向slack发送消息

Yaml 如何使用gitlab-ci.yml文件中的curl向slack发送消息,yaml,gitlab-ci,slack,Yaml,Gitlab Ci,Slack,我正在使用GitLab进行CI/CD进程。我想在空闲时向我的频道发送消息。以下API从终端开始工作 curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' https://hooks.slack.com/services/xxx/yyyy/zzzz 但当我把这一行放入.yml文件时,它给了我yml无效错误。完整的区块如下所示: slack\u

我正在使用GitLab进行CI/CD进程。我想在空闲时向我的频道发送消息。以下API从终端开始工作

curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' https://hooks.slack.com/services/xxx/yyyy/zzzz

但当我把这一行放入.yml文件时,它给了我yml无效错误。完整的区块如下所示:

slack\u jar:
阶段:松弛
在脚本之前:
-回音“你好”
脚本:
-curl-F file=@target/springApp-0.0.1.jar-F channels=#应用程序开发后端-F token='xoxb-1111-2222-yyyyy'https://slack.com/api/files.upload
仅:
-发展
信息:
阶段:松弛
脚本:
-回显“发送松弛消息”
-curl-X POST-H'Content-type:application/json'--data'{“text”:“Hello,World!”}https://hooks.slack.com/services/xxxx/yyyy/zzzz
仅:
-发展
第一阶段(发送文件)正确,但第二阶段不工作。这是我收到的错误消息:

状态:语法不正确错误:作业:slack\u消息:脚本配置应为字符串或字符串数组


根据错误消息,
slack\u消息
中的curl命令不正确。尝试将整个命令用引号括起来并转义内部引号。按照您的方式,YAML解析器认为
内容类型:application/json
是字典的键:值对。请尝试以下方法:

slack\u消息:
阶段:松弛
脚本:
-回显“发送松弛消息”
-“curl-X POST-H'内容类型:application/json'--data'{\'text\':\'Hello,World!\'}”https://hooks.slack.com/services/xxxx/yyyy/zzzz"
仅:
-发展
专业提示 如果您使用的是GitLab Enterprise Edition(EE),则可以使用
CI Lint
工具验证
GitLab CI.yaml
的内容。您可以在
CI/CD>管道
屏幕中访问此项。看


还有一个整洁的网站,您可以在其中输入YAML,它将(a)验证它,并(b)返回UTF-8版本。如果您有字符串问题,UTF-8版本将看起来损坏(这是YAML的情况)。

我记得,一个作业中不允许有多个
script
键,每个作业必须有一个
script
。请删除第一个。您可以在脚本之前有一个
脚本
脚本之后有一个
,这样您就可以了。你能发布完整的错误信息吗?您使用的是gitlab CE还是EE?谢谢您的回复。这是我收到的错误消息。“状态:语法不正确错误:作业:slack_消息:脚本配置应为字符串或字符串数组”您知道我有两个阶段。一个阶段用于发送文件,另一个阶段用于向频道发送文本消息。第一个阶段(发送文件)是正确的,但另一个阶段不起作用。我已编辑了主要问题正文,并放置了两个正文块以供松弛。第一个阶段是正确的,但第二个阶段不是正确的,我得到了一个错误。