Gitlab CI配置报错:扫描块标量时未找到预期注释或换行
解决GitLab CI YAML中管道符|的解析错误问题
你的报错根源是YAML语法里|属于特殊标记,解析器会把它识别为定义多行文本的块标量起始,而非脚本里的管道符,因此触发语法解析失败。以下是两种可行的解决方法:
方法1:用单引号包裹整个命令
将整条脚本命令用单引号括起来,强制YAML解析器将其视为纯字符串,忽略|的特殊语法含义:
deploy_block: tags: - block_autotest stage: deploy script: - '$env:CI_PROJECT_DIR | .\dorelease.bat' artifacts: paths: - BlockSetup.zip expire_in: 1 day
方法2:使用YAML块标量定义脚本
把script字段改为块标量格式,让整个脚本内容以纯文本形式被解析,彻底避免管道符的语法冲突:
deploy_block: tags: - block_autotest stage: deploy script: | "$env:CI_PROJECT_DIR" | .\dorelease.bat artifacts: paths: - BlockSetup.zip expire_in: 1 day
两种方法都能保留管道符的功能,确保dorelease.bat可以通过标准输入接收CI_PROJECT_DIR的路径值。
内容的提问来源于stack exchange,提问作者IzaeDA
相关产品推荐
相关产品推荐

