Установка переменной конвейера содержит лишние двойные или одинарные кавычки - PullRequest
1 голос
/ 14 июля 2020

У меня есть следующая команда для установки переменной BASE_URL в Azure DevOps yaml:

- script: |
    echo "##vso[task.setvariable variable=BASE_URL;]$(PROD-CONTAINER-URL)"
  condition: and(succeeded(), eq(variables['Build.SourceBranchName'], 'master'))

Однако всякий раз, когда я повторяю переменную, это выглядит так:

https://google.com"

Если я заменю его одинарной кавычкой или помещу $(PROD-CONTAINER-URL) внутри или снаружи кавычек, проблема все равно останется. Как я могу обойти это и что его вызывает?

Ответы [ 2 ]

1 голос
/ 15 июля 2020

Чтобы решить эту проблему в скрипте Bash, вам нужно удалить двойные кавычки или одинарные кавычки.

steps:
- script: |
     echo ##vso[task.setvariable variable=BASE_URL;]$(PROD-CONTAINER-URL)
  displayName: 'Run a one-line script'

- script: |
    echo $(BASE_URL)

Тогда переменная BASE_URL не будет содержать кавычек.

введите описание изображения здесь

1 голос
/ 14 июля 2020

Исправлено использование вместо этого powershell. Должна быть проблема с выходом bash, о которой я не знаю:

- powershell: |
    Write-Host "##vso[task.setvariable variable=BASE_URL;]$(TEST-CONTAINER-URL)"
  condition: and(succeeded(), eq(variables['Build.SourceBranchName'], 'develop'))
  displayName: "Initialize test base url variable"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...