我正在尝试为我的项目设置一个管道,以创建预发布并自动将其部署到CDN。CDN部署是一个单独的模板,我们可以重用它,并需要一些参数,如packageVersion
。我想在早期阶段自动拾取packageVersion
并将其传递到CDN部署模板,因此我们不必执行任何手动步骤。
我的管道看起来如下:
stages:
# Run build stage on Azure Agent
- stage: Build
dependsOn:
- ResolveDependenciesNPM
pool:
vmImage: 'ubuntu-latest'
jobs:
- job: Build
steps:
# tasks for npm install etc
- task: CmdLine@2
displayName: 'Update pkgversion variable'
name: packageversion
inputs:
script: |
PACKAGE_VERSION=$(node -p -e "require('./package.json').version")
echo "##vso[task.setvariable variable=pkgversion;isOutput=true]$PACKAGE_VERSION"
cat package.json
echo ""
echo "[PRERELEASE VERSION]:"
echo "$PACKAGE_VERSION"
echo ""
# tasks for code validation, publish, bundle, etc
- template: path/to/deploy/template.yml@global-templates
parameters:
dependsOn:
- Build
template: global-templates
packageVersion: "$[stageDependencies.Build.Build.outputs['packageversion.pkgversion']]"
# also tried:
# packageVersion: ${{ pkgversion }}
# packageVersion: ${{ variables.pkgversion }}
# packageVersion: $(pkgversion)
# packageVersion: $(variables.pkgversion)
字符串
但是,当我将pkgversion
变量作为参数传递时,我似乎找不到正确的方法来使其正确求值。如何将pkgversion
变量作为参数传递给CDN部署模板?
1条答案
按热度按时间zz2j4svz1#
试试一个对我有效的“技巧”:
1.声明同一文件中的第二个阶段(只传递作业作为模板)
1.在第二阶段添加变量,例如
字符串
1.将变量
$(packageVersionVar)
作为值传递给packageVersion参数