使用package.json中的内部版本号

时间:2019-02-15 15:30:23

标签: npm azure-devops

我在Azure devops中有一个Node项目,想将内部版本号设置为当前package.json中的任何内容,并附加一个数字。因此,如果我的package.json表示版本为0.0.1-beta,则内部版本号将类似于0.0.1-beta+20190215.1

使用npm:npm view <package-name> version可以很容易地获得版本字符串,但是我不知道要在管道中的哪个位置存储并将其注入以用作内部版本号。据我所知,内部版本号只能设置为硬编码值或通过“手动”设置的变量设置,而不能像使用命令输出那样以动态方式设置。

我尝试使用变量,首先使用了一个无效的自定义变量。我还找到了一个名为Build.Buildname的变量,但似乎无法将其写入。

有什么想法吗?

这是我正在尝试的基本pipeline.yaml的相关部分:

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '8.x'
  displayName: 'Install Node.js'

- script: |
    npm install
    npmVersionString=$(npm view <package-name> version) 
    echo ##vso[task.setvariable variable=build.buildnumber]$npmVersionString
    npm run build
  displayName: 'npm install, set buildnumber and build'

1 个答案:

答案 0 :(得分:0)

要在构建过程中更新内部版本号,您不仅可以像每个变量一样更新变量Build.BuildNumber,还需要执行一条特殊命令:

##vso[build.updatebuildnumber]{build number}

因此,在您的情况下,请替换此行

echo ##vso[task.setvariable variable=build.buildnumber]$npmVersionString

此行

echo ##vso##vso[build.updatebuildnumber]$npmVersionString

(如果需要,请不要忘记添加内部版本号)。

相关问题