gpt4 book ai didi

Azure管道在构建过程中替换json键值

转载 作者:行者123 更新时间:2023-12-02 07:42:44 25 4
gpt4 key购买 nike

我希望有人能帮助我解决这个让我发疯的问题。

我有一个正在学习的基本测试基础设施。

我有一个运行 Microsoft(教程)网站的基本 Web 应用程序。

在我的项目中,我有一个 json 文件,我曾经在该文件上手动更新代码版本以始终匹配 GitHub 上的标签。需要明确的是,这是一个基本的 version.json 文件,其版本为:

{
"app": {
"name": "TestingInfra",
"service": "TestInfraConfiguration",
"version": "vX.X.X"
}
}

当我准备好部署时,我在 GitHub 中创建一个标签并手动更新版本号以匹配 GitHub 存储库并推送。

在这个阶段,手动执行此操作有点烦人,因此我想自动执行 json 中该值的 sed,以自动从我的存储库中选择标签。

在我的管道 yaml 文件中,作为第一步,我有此配置

- powershell: |
# Write your PowerShell commands here.

Write-Host "Update Build.BuildNumber"
cd $(System.DefaultWorkingDirectory)
$Latesttag = $(git describe --tags $(git rev-list --tags --max-count=1))
Write-Host "The latest git tag is $Latesttag "
Write-Host
"##vso[build.updatebuildNumber]$Latesttag"
- bash: |
version=$Latesttag
sed -i "s|$version|$version|g" ./version.json
cat ./version.json

在 PowerShell 任务中,我使用 GitHub 中的标签覆盖代理的 BuildNumber。这非常完美。我想做的是使用 Powershell 中的相同 $Latesttag ,并替换 version.json 中的 json 文件 version

管道不会像这样失败,但也不会更新版本占位符。

请问有人可以帮助理解如何实现这一目标吗?

如果有不清楚的地方,请询问更多信息,我很乐意提供尽可能多的详细信息

最佳答案

您可以使用File Transform Azure .

我在我的 pipelines.yml

中做了类似下面的事情
variables
buildNumber: '$(Build.BuildNumber)'
... other code
steps:
- task: FileTransform@1
inputs:
folderPath: '$(System.DefaultWorkingDirectory)/drop'
fileType: 'json'
targetFiles: 'assets/json/version.json'

我在 assets/json/version.json 中有一个文件,如下所示

{
"buildNumber" : ""
}

从管道中执行步骤后,它将用正确的数字替换内部版本号变量

构建后

{
"buildNumber" : "2022.4.13.2"
}

关于Azure管道在构建过程中替换json键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71849470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com