use of step aliases causes false-positive errors
jtmoon79 opened this issue · 4 comments
tl;dr using an aliased task step input type results in VS Code Extension errant marking an error
Problem
The following Azure Pipeline yaml code is validated using using the current latest service-schema.json
97f39ff
This yaml code is okay, according to azure-pipelines-vscode extension.
# yaml-language-server: $schema=https://raw.githubusercontent.com/microsoft/azure-pipelines-vscode/97f39ff988232860b35556dde725d448151ec5a0/service-schema.json
stages:
- stage: Stage 1
jobs:
- job: Job_1
steps:
- task: DownloadPipelineArtifact@2
inputs:
buildType: 'specific'
project: 'Project2'
definition: 'definition2'
buildVersionToDownload: 'specific'
pipelineId: $(myId)
artifactName: 'artifact2'
targetPath: '.'
Now the same yaml but using aliases.
Alias runVersion
for step input buildVersionToDownload
.
Alias runId
for step input pipelineId
.
This yaml code is not okay, according to azure-pipelines-vscode extension.
# yaml-language-server: $schema=https://raw.githubusercontent.com/microsoft/azure-pipelines-vscode/97f39ff988232860b35556dde725d448151ec5a0/service-schema.json
stages:
- stage: Stage 1
jobs:
- job: Job_1
steps:
- task: DownloadPipelineArtifact@2
inputs:
buildType: 'specific'
project: 'Project2'
definition: 'definition2'
runVersion: 'specific'
runId: $(myId)
artifactName: 'artifact2'
targetPath: '.'
VS Code red underlines several parts and reports error
Property runVersion is now allowed: Pipeline schema
and odd error
String does not match the pattern of "^PowerShell@1$".yaml-schema: Pipeline schema
Solution
It appears the aliases are not checked for task step inputs. Looking at the JSON schema (from 97f39ff) there is
{
"properties": {
"task": {
"description": "Download Pipeline Artifacts\n\nDownload build and pipeline artifacts",
"ignoreCase": "value",
"pattern": "^DownloadPipelineArtifact@2$"
},
// ...
"buildVersionToDownload": {
"description": "Build version to download",
"ignoreCase": "all",
"enum": [
"latest",
"latestFromBranch",
"specific"
],
"aliases": [
"runVersion"
]
},
// ...
"pipelineId": {
"type": "string",
"description": "Build",
"ignoreCase": "key",
"aliases": [
"runId",
"buildId"
]
},
So the validator portion of azure-pipelines-vscode should also try to match task step input names with entries in the task step input list aliases
.
Hi, @jtmoon79 thanks for reporting!
We are working on more prioritized issues at the moment but will get back to this one soon.