【问题标题】:npm version in Azure DevOps pipelineAzure DevOps 管道中的 npm 版本
【发布时间】:2021-03-23 18:02:03
【问题描述】:

我在 Azure DevOps 中有一个构建管道,它通过 npm pack 发布工件,以便稍后发布到工件源中。

我想通过 GIT 设置我的主要和次要版本,但补丁版本与内部版本号绑定。例如

1.2.20201212.4

其中 1 和 2 是主要版本。通过 GIT 手动更新的次要版本 而 20201212.4 是补丁和修订号set by build pipeline

有人可以帮我找出所需的npm version 命令参数以从源代码中保留minor.major 版本并仅更新$(Build.BuildNumber) 变量中的补丁和修订部分吗?

【问题讨论】:

  • 嗨@irriss。如果最新更新可以满足您的要求,请随时告诉我。如果它能给你一些帮助,你可以考虑接受它作为答案。谢谢。

标签: npm azure-devops semantic-versioning azure-artifacts


【解决方案1】:

在 Azure Devops 中,您可以使用Replace Tokens Extension 中的替换令牌任务

然后你可以在 NPM pack 任务之前添加任务来替换 Package.json -> Version field. 中的变量

步骤如下:

Package.Json 文件:

{
  "name": "helloword",
  "version": "0.0.#{SetNumber}#",
  "description": "Hello World",
  "main": "server.js",
...
}

构建管道:

  1. 在构建管道中设置变量。

  1. 添加替换标记任务。

注意:根据我的测试,npm 包在 azure devops 中不支持 xx.x.x.x 版本格式(npm publish)。它可以支持x.x.x-x

所以你可以这样设置buildnumber:$(Date:yyyyMMdd)-$(Rev:r).

结果:

更新:

您可以尝试使用 Npm Version 命令。

npm version  0.0.$(build.buildnumber) --no-git-tag-version

更新2:

您可以尝试使用以下 powershell 脚本来获取 Package.json 中的版本字段。然后更新补丁号。

$filePath = "$(Build.sourcesdirectory)\package.json" #filepath
$Jsonfile= Get-Content $filePath | ConvertFrom-Json
$version = $Jsonfile.version

echo $version

$major,$minor,$build = $version.Split('.')    

$build = "$(build.buildnumber)"    

$bumpedVersion = $major,$minor,$build  -join(".")

echo $bumpedVersion

Write-Host "##vso[task.setvariable variable=version]$bumpedVersion"

在 Npm 版本中,您可以运行以下命令:

version $(version) --no-git-tag-version

【讨论】:

  • 谢谢凯文,这很好,但是在 package.json 中使用 "version": "0.1.#{SetNumber}#" 原因 > 执行任务:npm run build
  • 嗨@irriss。当然。您可以在管道的第一步中添加替换令牌任务。换句话说,在执行 npm 任务(npm run build)之前运行替换令牌任务。该任务用于为版本字段分配值。在这种情况下,它应该可以工作。
  • 我的意思不是在管道中,而是在本地开发过程中。没有变量 #{SetNumber}# 会导致问题
  • @irriss。请参阅更新信息。您可以在管道中使用 npm version 命令。我已经添加了详细信息。你可以检查它是否可以工作。在这种情况下,您不需要更改 package.json 文件中的版本。这样可以避免你上面提到的错误。
  • 感谢 Kevin 的更新,但如果我运行 npm version 0.0.$(build.buildnumber) --no-git-tag-version 它将始终将主要和次要版本覆盖为零。我想保留次要/主要数字并仅更新补丁版本?这就是我卡住的地方
猜你喜欢
  • 1970-01-01
  • 2020-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-24
  • 2020-10-22
  • 1970-01-01
  • 2019-11-23
相关资源
最近更新 更多