Github Action中YAML语法报错:第17行zip-exclude参数有误
解决Github Action YAML语法错误(zip-exclude行)
问题分析
报错指向的语法问题,大概率是YAML解析器对zip-exclude值中包含的*特殊字符+逗号分隔的格式产生了解析歧义,尤其是Github Actions的YAML校验逻辑对这类字符串的处理较为严格。
解决方案
方案1:改用YAML数组格式(推荐)
将逗号分隔的路径改为数组项,这是更符合YAML规范的写法,同时避免解析冲突:
name: Poging Gwapo Scan on: push: branches: - "feature/pogi/**" - "release/gwapo/**" jobs: scan: uses: pogi/pogi-actions/.github/workflows/checkmarx.yml@v1 with: checkmarx-team: POGI/gwapo exclude-files: "pogi/gwapo/index.php,pogi/index.php" zip-exclude: - "/.github/.*" - "files/pogi/.*" secrets: checkmarx-username: ${{ secrets.POGI_CHECKMARX_USERNAME }} checkmarx-password: ${{ secrets.POGI_CHECKMARX_PASSWORD }}
方案2:改用单引号包裹字符串
如果目标复用工作流仅接受逗号分隔的字符串格式,将双引号替换为单引号,强制YAML将内容作为纯字符串解析:
zip-exclude: '/.github/.*,files/pogi/.*'
说明
- 数组格式的优势是可读性更强,且完全规避YAML对特殊字符的解析问题;
- 单引号包裹的方式则直接跳过YAML对双引号内内容的特殊字符解析逻辑,适合必须保持逗号分隔格式的场景。
内容的提问来源于stack exchange,提问作者Lagot
相关产品推荐
相关产品推荐

