【发布时间】:2021-03-03 15:42:03
【问题描述】:
我已对其进行了设置,以便它推送.csproj 文件中定义的包版本,并根据主控触发。有没有一种方法可以在提交到非主分支时基本上命令包具有诸如pre-release-(.csproj 中定义的包版本)之类的名称?
【问题讨论】:
标签: azure-devops yaml azure-pipelines pipeline
我已对其进行了设置,以便它推送.csproj 文件中定义的包版本,并根据主控触发。有没有一种方法可以在提交到非主分支时基本上命令包具有诸如pre-release-(.csproj 中定义的包版本)之类的名称?
【问题讨论】:
标签: azure-devops yaml azure-pipelines pipeline
更新:添加变量定义。
当然,您可以通过根据正在构建的分支更改管道中的版本管道变量来完成此操作。
在您的情况下,您需要在 Stage/Pipeline 变量中添加一个版本变量:
variables:
- name: Version
value: ""
然后,在您尝试打包和推送您的工件之前添加此任务:
- script: |
echo '##vso[task.setvariable variable=Version]pre-release-$(Version)'
echo "Setting Version to pre-release-$(Version)"
condition: ne(variables['Build.SourceBranch'], 'refs/heads/master')
将变量设置为您的预发布名称后,您需要将版本传递给您的 NuGet 推送,如下所示:
- task: DotNetCoreCLI@2
displayName: "Run NuGet Pack"
inputs:
command: "pack"
packagesToPack: "yourproject.csproj"
versioningScheme: "off"
buildProperties: Version=$(Version)
【讨论】:
$(Version) 是什么。日志:Setting Version to pre-release- /home/vsts/work/_temp/ab79fe90-2191-49c8-983f-162e4c392dce.sh: line 2: Version: command not found
pre-release-,因为版本不等于任何内容。