azure - 未从 Azure Devops 管道中的变量组中的变量获取任何值
问题描述
我真的在为我的变量组中名为“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
解决方案
由于您正在混合组和内联变量,因此您可能需要将其从映射更改为序列,如下所示:
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
当你想使用一个组时,你必须稍微改变你的语法,这样解析器就不会认为你想创建一个名为“组”的变量——你把它变成一个序列或数组:
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)"
- 运行管道时打开系统诊断并查看输出是否有任何有用的详细信息
- 通过门户编辑管道 - 管道 - 选择您的管道 -> 编辑。然后,从页面右上角的省略号菜单中,选择“下载完整的 YAML”——这将下载编译器将创建的内容。现在,它不会为您提供变量值,但它可以为您提供有关可能的格式或声明错误的线索。
推荐阅读
- python - 打印 x 的最大值,其中 x = |(A[i] – A[j]) + (i – j)|
- laravel - 是否可以授予令牌访问链接到亚马逊 s3 存储的权限?
- python - 需要帮助来解决这个问题
- javascript - 无法在 React 中设置未定义的属性“myInterval”
- php - 将包含的输出发送到变量中?
- linux - 如何永远在linux服务器上运行命令
- python - render_template Python 上 JSON 对象的值
- c# - Cosmos DB - 更新项目时出现错误“检测到属性‘任务’的自引用循环”
- android - 如何从片段 Android Studio Kotlin 调用任何活动
- c# - 如何在将元素添加到列表之前检查元素是否为空?