Cou*_*ero 5 yaml devops azure-devops azure-pipelines
我正在尝试为 Azure DevOps YAML 管道中的 NuGet 包生成名称。
上下文正在每个自动构建上创建包,其中包含包的名称、分支的名称、日期和递增的修订号。
packageName-branchName-year-month-day-revision
这样,当创建新的功能分支时,它将生成一个独特的包,可用于在需要它的项目中进行测试。
我正在努力根据环境变量(例如日期或修订号)在 YAML 文件中设置变量。
使用 ##vso 命令,我可以将“myVariable”设置为 hello 并将其打印出来。
- script: |
echo '##vso[task.setvariable variable=myVariable]hello'
- script: |
echo my variable is $(myVariable)
Run Code Online (Sandbox Code Playgroud)
当我尝试如下从 PowerShell 设置变量时,出现以下错误“#$dateStr”未被识别为内部或外部命令”。
# Create a variable
- script: |
#$dateStr = (Get-Date).ToString('yyyy-MM-dd')
echo '##vso[task.setvariable variable=myVariable]#$dateStr'
# Print the variable
- script: |
echo my variable is $(myVariable)
Run Code Online (Sandbox Code Playgroud)
当我尝试在 YAML 文件的变量部分中设置变量时,如下所示。
variables:
solution: '**/*.sln'
foo: $(Date:yyyyMMdd)
- script: |
echo my variable is $(foo)
Run Code Online (Sandbox Code Playgroud)
该变量未进行插值,其输出为。
'我的变量是 $(Date:yyyyMMdd)'
如何根据 $(rev) 和 $(Date) 等环境变量创建变量?
我不认为有内置date变量,但对于 powershell 情况,您只需#在变量之前删除它,并且必须将其括起来,"否则 powershell 不会扩展您的变量
echo "##vso[task.setvariable variable=myVariable]$dateStr"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8846 次 |
| 最近记录: |