我在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'
要在构建过程中更新内部版本号,您不仅可以Build.BuildNumber
像每个变量一样更新变量,还可以使用特殊命令:
##vso[build.updatebuildnumber]{build number}
因此,在您的情况下,请替换此行
echo ##vso[task.setvariable variable=build.buildnumber]$npmVersionString
用这条线
echo "##vso[build.updatebuildnumber]$npmVersionString"
(如果需要,请不要忘记附加内部版本号)。
例
- script: |
npmVersionString=$(node -p "require('./package.json').version")
echo "##vso[build.updatebuildnumber]$npmVersionString"
displayName: 'set build number'
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句