github / github/vscode-github-actions

Error thrown in consuming workflows regarding JSON output values quotes

Open
#464 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
TypeScript
Stars
660
Forks
213
PR merge metrics
No merged PRs in 30d

Description

**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`

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the error with the reusable workflow and consuming workflow shown in the issue, using the reported extension version as a baseline. Trace the diagnostics produced for quoted JSON expressions and verify that valid GitHub Actions syntax no longer reports errors in the consuming workflow or maps them to the wrong line.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, typescript, vscode
Domain
devtools
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.