Невозможно установить переменную среды узла в файле yml - PullRequest
0 голосов
/ 07 мая 2019

Использование DevOps и файла azure-pipeline.yml Azure Я пытаюсь определить переменную 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 запускает шут, который запускает кучу тестов, где я хочу получить доступ к этим переменным. Как я могу установить эти переменные?

1 Ответ

1 голос
/ 08 мая 2019

Вы можете определить переменные в начале файла .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 вы читаете переменные, как и каждая переменная окружения.

...