问题描述
我已经很接近我的模板和使用它的部署Yaml.但是我遇到了错误
I have gotten pretty close with my template and my deploy yaml that uses it. However I am getting to errors
意外值变量"意外的值阶段"
Unexpected value 'variables'Unexpected value 'stages'
我确定语法错误,但是我一生无法理解为什么.
I am sure I have the syntax wrong, but I can't for the life of me understand why.
这是我模板的开始
#File: template.yml
parameters:
- name: repositoryName
type: string
default: ''
variables:
tag: '$(Build.BuildId)'
buildVmImage: 'ubuntu-latest'
deployPool: 'deploy-pool'
stages:
- stage: Build
jobs:
- job: Build
pool:
vmImage: $(buildVmImage)
steps:
- checkout: self
submodules: recursive
这是使用它的部署Yaml
And here is the deploy yaml that uses it
# Repo: Organization/Project
# File: azure-pipelines.yml
trigger:
- develop
- next
- master
resources:
repositories:
- repository: template
type: git
name: AzureDevOps/AzureDevOps
jobs:
- template: template.yml@template
parameters:
repositoryName: 'exampleName'
任何帮助将不胜感激.我确定它就在我的鼻子前,但是我已经挣扎了好几天,所以我认为是时候寻求帮助了.
any help would be appreciated. I am sure it's right in front of my nose but I've been struggling for days so I think it's time to ask for help.
推荐答案
您的 template.yml
为 stages
定义了一个模板,而您在 jobs
元素下引用它.
Your template.yml
defines a template for stages
, while you're referencing it under jobs
element.
多级管道的正确格式为:
The correct format of multi-stage pipeline is:
stages:
- stage: Build
jobs:
- job: Build
pool:
vmImage: $(buildVmImage)
steps:
- checkout: self
submodules: recursive
- job: Job2
pool:
vmImage: $(buildVmImage)
steps:
...
- stage: Deploy
jobs:
- job: Deploy
pool:
vmImage: $(buildVmImage)
steps:
...
stages => stage => jobs = job,因此您不能在 jobs
元素下引用 stages
模板.更改
stages=>stage=>jobs=job, so you can't reference stages
template under jobs
element. Changing
jobs:
- template: template.yml@template
收件人
stages:
- template: template.yml@template
将解决此问题.
如果变量用于整个管道,请将其移至 azure-pipelines.yml
:
If the variables are for whole pipeline, move it into azure-pipelines.yml
:
trigger:
- master
variables:
tag: '$(Build.BuildId)'
buildVmImage: 'ubuntu-latest'
deployPool: 'deploy-pool'
如果变量用于一个特定阶段,则将其移至阶段:
If the variables are for one specific stage, move it under stage:
stages:
- stage: Build
variables:
variable1: xxx
variable2: xxx
jobs:
- job: Build
pool:
vmImage: $(buildVmImage)
steps:
- checkout: self
submodules: recursive
如果变量用于一项作业,请将其移至特定作业下:
If the variables are for one job, move them under specific job:
stages:
- stage: Build
jobs:
- job: Build
pool:
vmImage: $(buildVmImage)
variables:
variable1: xxx
variable2: xxx
steps:
- checkout: self
submodules: recursive
jobs
元素不支持 variables
,而job/stage支持它.将变量移至正确的范围将解决此问题.
The jobs
element doesn't support variables
, job/stage support it instead. Moving the variables to correct scope would resolve this issue.
这篇关于Azure Pipelines YAML:意外的值“变量"和意外的“阶段"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!