powershell 如何在Azure DEVOPS管道中为chart.yaml文件设置版本

nwlqm0z1  于 2022-11-10  发布在  Shell
关注(0)|答案(2)|浏览(178)

我有一个.Net项目,包括Chart.yaml
我想在运行管道时在文件中设置一个版本。

PowerShell

$newversion = "v5.0.0-a"
$chartyaml = "Chart.yaml"

$yamlText = (Get-Content $chartyaml) 
$yamlText.replace('appVersion: .*','appVersion: $newversion')
$yamlText > $chartyaml

Chart.yaml

apiVersion: v2
appVersion: "v5.0.0-a"
description: A Helm chart for Kubernetes
name: application-api
version: "v5.0.0-a"
type: application
gdx19jrr

gdx19jrr1#

您的方案的一种解决方法是使用PythonScript,如下所示:

def change_yaml_content(file_path, key, value):

      with open(file_path, 'r') as f:

          data = yaml.load(f, Loader=yaml.FullLoader)

          data[key] = value

      with open(file_path, 'w') as f:

          yaml.dump(data, f)

  file_path = "YAML_Folder/Chart.yml"

  key = "appVersion"

  value = "1.0.0"

  change_yaml_content(file_path, key, value)

此脚本用于帮助指定您的appVersion,如果您想指定另一节,只需更改“appVersion”以指定另一节。

erhoui1w

erhoui1w2#

请参阅此处的示例-https://github.com/relizaio/rebom/blob/master/.github/workflows/github_actions.yml-第283行及以下。
请注意,该脚本用于GitHub操作,但您可以对Azure DevOps使用相同的想法。

相关问题