cdi*_*die 10 yaml csproj azure-devops
在使用 YAML 文件格式在 Azure DevOps 上执行 CI 时,我试图读取我的 csproj 文件以提取有关版本的信息以创建将遵循 csproj 版本的 NuGet 包。
我NuGetCommand@2用于包装(因为versioningScheme: byPrereleaseNumber)
是否有内置任务或方法可以从 csproj 文件中提取此信息作为正则表达式并将它们传递给NuGetCommand@2?
您可以将其添加为提取 csproj 标签的第一步:
- script: echo "##vso[task.setvariable variable=version]$(cat 'ProjectDirectory/MyProject.csproj' | grep -oP '(?<=<Version>).*?(?=<\/Version>)')"
Run Code Online (Sandbox Code Playgroud)
然后您就可以通过调用$(version)yaml 中的任何位置来使用它。
echo "##vso[task.setvariable variable=version]意思是“设置一个我可以在之后使用的变量”cat 'ProjectDirectory/MyProject.csproj' | grep获取您的 csproj 内容,然后将其传递给 grep,以便我们可以对其执行正则表达式(?<=<Version>).*?(?=<\/Version>)')是一个正则表达式,它查找<Version>x.x.x</Version>标签而不消耗标签,因此它只打印里面的内容这里的其他答案对我不起作用,但我确实在管道定义中拼凑了一个替代解决方案:
variables:
projectVersion: '0.0'
buildNumber: '$(Build.BuildId)'
versionNumber: '$(projectVersion).$(buildNumber)'
steps:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
$input_path = (Get-ChildItem -Path "YourDirectory\" -Include SampleLibrary.csproj -File -Recurse -ErrorAction SilentlyContinue)
$regex = '(?<=<Version>).*?(?=<\/Version>)'
$version = Select-String -Path $input_path -Pattern $regex -AllMatches | % { $_.Matches } | % { $_.Value }
Write-Output "##vso[task.setvariable variable=projectVersion]$version"
Run Code Online (Sandbox Code Playgroud)
这会将版本号设置为一个不错的值,例如“1.1.8.547”,尽管显然您可以根据需要省略内部版本号。
这里 PowerShell 脚本的要点是,它将首先检索指定目录中的 .csproj 文件。然后我使用 Francoimora 发布的相同正则表达式从文件中提取值并将其存储在 $version 变量中。最后一行将 $version 的值写入 YAML 中定义的 projectVersion 变量。
从 .NET Standard 中的类库中删除 AssemblyInfo.cs 文件似乎确实遇到了很多麻烦,而且一无所获...希望我们能得到一些更好的管道任务/变量,适合这些类型的项目未来。
我相当确定没有内置任何内容,但是您可以使用您喜欢的任何脚本语言来解析文件并“吐出”您需要的任何内容作为构建变量并在以后使用它。这是我一直在做的事情:
- script: echo "##vso[task.setvariable variable=dp]$(cat $(Build.Repository.LocalPath)/deployment/dp)"
- script: az group delete -n $(dp)-k8s -y --no-wait
Run Code Online (Sandbox Code Playgroud)
显然,您可以在脚本步骤中执行任何自定义操作,并以您喜欢的任何方式使用结果。
https://github.com/Microsoft/azure-pipelines-tasks/blob/master/docs/authoring/commands.md
| 归档时间: |
|
| 查看次数: |
5670 次 |
| 最近记录: |