github / github/vscode-github-actions

`if` conditional marked as error if the YAML string is double quoted

Abierto
#60 4 comentarios 7 reacciones 0 asignados Ver en GitHub
bug
Lenguaje dominante
TypeScript
Estrellas
660
Forks
213
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

**Describe the bug**
I have an `if` in my workflow that looks like this:
```yaml
if: "!startsWith(matrix.os, 'ubuntu-')"
```

The conditional is quoted because `!` has meaning in YAML to change the type, so we can't start a string with that character without a way to tell the YAML parser it's a string. **This works fine in the workflow.**

However, it's marked as an error by this extension:

> Unexpected symbol: '"'. Located at position 1 within expression: "!startsWith(matrix.os, 'ubuntu-')"

**Workarounds that work**
* Single quotes (**NOTE** double quotes can't be used inside expression apparently)
* YAML multi-line strings
* Unnecessary templating

```yaml
---
# Note double single quotes internally
if: '!startsWith(matrix.os, ''ubuntu-'')'

---
if: >-
!startsWith(matrix.os, 'ubuntu-')

---
if: ${{ !startsWith(matrix.os, 'ubuntu-') }}
```

**Workarounds that don't work**
* explicit `str` typing

```yaml
---
if: !!str !startsWith(matrix.os, 'ubuntu-')
```

**To Reproduce**
Use a double quoted condition.

**Expected behavior**
No error.

**Screenshots**
![image](https://user-images.githubusercontent.com/1260690/228541620-d2aac670-d445-4b49-ba4e-26e841c63cfb.png)

**Extension Version**
`v0.25.3`

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.