使用Azure的DevOps和azure-pipeline.yml
文件,我试图定义一个process.env
变量以用于我的node.js代码,该变量在调用npm run test
时运行。我正在将git commit版本从Build.SourceVersion
设置为process.env.BATCH_ID
。
azure-pipelines.yml
如下:
trigger:
- master
pool:
vmImage: 'Ubuntu-16.04'
steps:
- task: NodeTool@0
inputs:
versionSpec: '8.x'
displayName: 'Install Node.js'
- script: |
npm install
process.env['BATCH_ID'] = $(Build.SourceVersion)
process.env['myVar'] = 'nick'
npm run start &
npm run test
在我的Nodejs代码中,BATCH_ID
和myVar
都返回未定义。我意识到我目前没有正在运行的节点进程,这是一个问题。 npm run test运行的是开玩笑,我正在运行一堆要访问这些变量的测试。如何设置这些变量?
答案 0 :(得分:1)
您可以在.yaml
文件的开头定义变量:
# Set variables once
variables:
BATCH_ID: $(Build.SourceVersion)
myVar: nick
steps:
- task: NodeTool@0
inputs:
versionSpec: '8.x'
displayName: 'Install Node.js'
- script: |
npm install
npm run start &
npm run test
另一个在脚本阶段设置变量的选项:
- script: |
npm install
echo '##vso[task.setvariable variable=BATCH_ID]$(Build.SourceVersion)'
echo '##vso[task.setvariable variable=myVar]nick'
npm run start &
npm run test
在Node.js中,您像读取每个环境变量一样读取变量。