github / github/vscode-github-actions

Yaml validation fail when using expession in job env or step env

未关闭
#490 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
bug
主要语言
TypeScript
星标
660
派生
213
PR 合并指标
30 天内没有已合并 PR

描述

**Describe the bug**
I have a workflow that uses a matrix that define env to use with each job.
Using expression to set the job env fail validation.

**To Reproduce**
Steps to reproduce the behavior:
1. Create a workflow file like this
```
---

on:
push: {}

jobs:
myjob:
strategy:
matrix:
include:
- name: 'env1'
runs-on: 'ubuntu-22.04'
env:
VAR1: 'value1'
VAR2: 'value2'
- name: 'env2'
runs-on: 'ubuntu-24.04'
env:
VAR1: 'value3'
VAR2: 'value4'
name: ${{ matrix.name }}
runs-on: ${{ matrix.runs-on }}
env: ${{ matrix.env }}
steps:
- name: Run tests
run: 'echo "var1: $VAR1, var2: $VAR2"'
```

2. See validation error in vscode
```
`Unexpected type 'BasicExpressionToken' encountered while reading 'job env'. The type 'MappingToken' was expected.`
```

3: running the workflow produces
env1
```
Run echo "var1: $VAR1, var2: $VAR2"
var1: value1, var2: value2
```
env2
```
Run echo "var1: $VAR1, var2: $VAR2"
var1: value3, var2: value4
```
No errors.

**Expected behavior**
I would expect validation not to produce an error like this

贡献指南

打开贡献指南

调研方向

Start by reproducing the reported validation error in VS Code with the workflow shown in the issue. Trace the GitHub Actions job-env validation entry point and compare its handling of the matrix expression with the workflow runtime; done means the valid workflow no longer produces a validation error while retaining its current behavior.

由索引模型根据 Issue 内容生成。

评估

技术栈
github-actions, typescript, vscode, yaml
领域
devtools, tooling
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

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