我真的在为我的变量组中名为“android-pipeline”的一些变量而苦苦挣扎。 在这个变量组中,我有一些带值的变量。 但是当我运行管道时,它无法读取我的变量组中的值。 :(
示例: 在变量组里面,我有一个变量叫做 $(key.alias) 我正在尝试获取该变量后面的值,请参阅下面的代码。
我认为语法(或我使用它的方式)有问题,但我找不到使用 $(key.alias) 变量的正确语法。
此外,在变量组内,我确保所有管道都可以访问此变量组。 有人可以告诉我如何获取 $(key.alias) 变量背后的值并在任务中使用它吗?我试图遵循许多指南,但没有一个对我来说足够清楚或不工作
variables:
group: android-pipeline
buildConfiguration: 'Release'
stages:
stage: Publish
dependsOn: Build
displayName: Sign Apps
jobs:
- task: AndroidSigning@3
displayName: Android App signing
inputs:
apkFiles: '**/*.apk'
apksignerKeystoreFile: '$(androidKeyStore)'
apksignerKeystorePassword: '********'
apksignerKeystoreAlias: '$(key.alias)'
apksignerKeyPassword: '*******'
apksignerArguments: --out $(outputDirectory)/app.release.apk
zipalign: true
答案 0 :(得分:2)
由于您混合了组和内联变量,您可能需要将其从映射更改为序列,如下所示:
variables:
- group: android-pipeline
- name: buildConfiguration
value: Release
通常,当您声明变量时,您可以像名称/值对的映射或哈希表一样执行它们:
variables
var1: value1 # note there's no dash at the beginning of the line
var2: value2
var3: value3
# etc
当你想使用一个组时,你必须稍微改变你的语法,这样解析器就不会认为你想创建一个名为“组”的变量——你把它变成一个序列或数组:< /p>
variables
- group: groupname1 # note there's a dash at the beginning of the line
- group: groupname2
# etc
这是最后的问题 - 一旦您从第一种格式转到第二种格式(映射到序列),您必须以“序列”样式声明本地文件的新变量:
variables
- group: groupname1 # note there's a dash at the beginning of the line
- name: varname1
value: value1
- name: varname2
value: value2
# etc
您使用 $(varname1)
语法以相同的方式在管道中进一步引用变量。
如果您对此有疑问,我建议您做以下几件事(实际上是 3 点):
script
或 pwsh
任务来echo
或 Write-Host
您想看但不想看的一切,如“pwsh: Write-Host "My var should be $(varname1)"