这是我第一次使用azure管道,我开始创建azure-pipeline. yml。我尝试执行azure DevOps管道。但是,我遇到了变量未按声明引用的错误。
deploy.sh deploy_azr ${{ variables.subPref }} ${{ variables.rgType }} ${{ variables.location }} ${{ variables.config }}
这是我的模板的开始
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
trigger:
branches:
include:
- main
paths:
include:
- 'bicep/*'
- 'azure-pipelines.yml'
exclude:
- '*'
pool:
vmImage: ubuntu-latest
variables:
${{ if eq(variables['Build.SourceBranchName'], 'test_branch') }}:
deployTarget: tst
subscription: testsubscription
subscriptionId: 26455-trt31-******
rgType: tstrg
subPref: *****
config: tstjson
location: eastus2
${{ if eq(variables['Build.SourceBranchName'], 'main') }}:
deployTarget: prd
subscription: prdsub
subscriptionId: ***********************
rgType: prdrg
subPref: ******
config: prd.json
location: eastus2
stages:
- stage: Deploylib
jobs:
- deployment: lib
environment: ${{ variables.subscription }}
strategy:
runOnce:
deploy:
steps:
- checkout: self
- task: AzureCLI@2
inputs:
azureSubscription: ${{ variables.subscription }}
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
set -e
set -x
sudo apt install -y gridsite-clients
cd 'bicep'
echo "starting the lib deployment"
deploy.sh deploy_azr ${{ variables.subPref }} ${{ variables.rgType }} ${{ variables.location }} ${{ variables.config }}
任何帮助都将不胜感激。
2条答案
按热度按时间ws51t4hk1#
我认为问题在于您需要在这一行中指定正确的环境名称,
您可以在DevOps页面上创建一个环境,参见参考here,然后将名称复制到上面的YAML。
这里
environment
的概念代表了你将要部署代码的资源集合,一旦你运行了一个部署,你应该能够看到目标环境中的部署历史。dw1jzc5e2#
/azure-pipelines. yml(行:42,第22栏):意外值""
测试相同的YAML样本并重现相同的问题。
问题的原因是您使用的格式为:YAML样本中的
${{ variables.subscription }}
。变量将在编译时处理。
要解决此问题,可以更改为使用以下格式:
$(subscription)
例如:
有关更多详细信息,请参阅此文档:运行时表达式语法