github / github/vscode-github-actions

Error thrown in consuming workflows regarding JSON output values quotes

未关闭
#464 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
bug
主要语言
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

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。