Как установить и прочитать переменную пользовательской среды в Azure DevOps Pipeline? - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть некоторый код автоматизации тестирования, который считывает некоторые значения из переменной среды, хранящейся на моем локальном компьютере, например:

Environment.GetEnvironmentVariable("SAUCE_USERNAME", EnvironmentVariableTarget.User);

Я пытаюсь использовать Azure Pipelines для создания этой переменной во время выполнения конвейераа затем прочитайте его в моем коде автоматизации тестирования.Использование файла YAML.

Я читаю эту переменную на этапе тестирования VS конвейера Azure.Поэтому, если я задаю переменную, она должна быть действительна для конвейера Azure.

Я пытался использовать документацию здесь , но безуспешно.

Попробовал и этот код ниже, но он не работает с этой ошибкой:

azure-pipelines.yml (строка: 39, столбец: 1, Idx: 1252) - (строка: 39, столбец: 1, Idx: 1252): при сканировании простого ключа не удалось найти ожидаемое ':'.

# Create a secret variable
- powershell: |
Write-Host '##vso[task.setvariable variable=sauce.userName;issecret=true]abc'

# Attempt to output the value in various ways
- powershell: |
# Using an input-macro:
Write-Host "This works: $(sauce.userName)"

# Using the env var directly:
Write-Host "This does not work: $env:SAUCE_USERNAME"

# Using the mapped env var:
Write-Host "This works: $env:SAUCE_USERNAME"
env:
SAUCE_USERNAME: $(sauce.userName)

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Могут быть и другие способы сделать это, но вот как я смог это сделать:

  1. Создайте свои переменные в конвейере DevOps Azure и предоставьте этим переменным значения.
  2. Создайте скрипт Powershell, который вы будете запускать в начале для установки переменных Env. Это , как выглядит мой Posh.
  3. Запустите этот Posh в начале как отдельный шаг в вашем конвейере CI, и это установит переменные среды для виртуальной машины, которая используется для запуска вашеготрубопровод.

Это еще одна подробная статья , которая может помочь вам в этом.

0 голосов
/ 25 октября 2018

Установите переменные конвейера и попробуйте это отображение в вашем файле yaml:

# ASP.NET Core (.NET Framework)
# Build and test ASP.NET Core projects targeting the full .NET Framework.
# Add steps that publish symbols, save build artifacts, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core

pool:
  vmImage: 'VS2017-Win2016'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'
  yourEnvVar: '$(yourPipelineVariable)'
  yourOtherEnvVar: '$(yourOtherPipelineVariable)'
...