github / github/vscode-github-actions
Error thrown in consuming workflows regarding JSON output values quotes
- 主要语言
- TypeScript
- 星标
- 660
- 派生
- 213
- PR 合并指标
- 30 天内没有已合并 PR
描述
**Describe the bug**
Quotes in a reusable workflow's JSON output value is triggering an error in consuming workflows.
**To Reproduce**
Steps to reproduce the behavior:
1. Create a reusable workflow with input and outputs, one of the output being this JSON value:
```yaml
outputs:
images:
value: '{"gcp": "${{ contains(inputs.registries, ''gcp'') && jobs.setup.outputs.gcp_image || '''' }}", "ecr": "${{ contains(inputs.registries, ''ecr'') && jobs.setup.outputs.ecr_image || '''' }}"}'
```
2. Use the first workflow in another workflow:
```yaml
build:
uses: acme/actions/.github/workflows/build.yaml@v1
```
3. See the following errors in the 2nd workflow file, but __at the line number__ from the 1st workflow file:
```
Unexpected symbol: 'gcp'''. Located at position 31 within expression: contains(inputs.registries, ''gcp'') && jobs.setup.outputs.gcp_image || '''' [Ln 72, Col 26]
Unexpected symbol: 'ecr'''. Located at position 31 within expression: contains(inputs.registries, ''ecr'') && jobs.setup.outputs.ecr_image || '''' [Ln 72, Col 120]
```
**Expected behavior**
The 1st workflow does not throw any errors when being run in Github Actions runners, so I'd expect no errors to be printed by this extension.
**Extension Version**
`v0.27.1`
贡献指南
调研方向
首先,使用 issue 中展示的 reusable workflow 和 consuming workflow 重现错误,并以报告中的扩展版本作为基线。跟踪为带引号的 JSON 表达式生成的诊断信息,并验证有效的 GitHub Actions 语法在 consuming workflow 中不再报告错误,也不会将错误映射到错误的行。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- github-actions, typescript, vscode
- 领域
- devtools
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 42/100