Dynami c Переменные / Eval / строки оценки в Azure Devops Pipeline? - PullRequest
0 голосов
/ 15 марта 2020

Как мне сделать 'eval' в Azure конвейере DevOps? Я попробовал eval в шаге bash, и он сказал, что eval не существует.

Например:

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
    var: 'middle'
    start_middle_end: '123'

name: 'test'

steps:
- bash: |
    echo $(start_$(var)_end)
    echo $(start_$[var]_end)
    echo $[start_$(var)_end]
    ${{format('{0} {1}', 'echo', '$(start_$(var)_end)')}}

Я хотел бы, чтобы это было эхо 123. Вы можете увидеть различные попытки выше. Что на самом деле говорит:

2020-03-15T19:00:20.9585338Z /d/a/_temp/704b13e7-2bb0-4099-98a9-292925b35f19.sh: line 1: start_middle_end: command not found
2020-03-15T19:00:20.9721864Z /d/a/_temp/704b13e7-2bb0-4099-98a9-292925b35f19.sh: line 2: start_0_end: command not found
2020-03-15T19:00:20.9741785Z 0
2020-03-15T19:00:20.9864319Z /d/a/_temp/704b13e7-2bb0-4099-98a9-292925b35f19.sh: line 4: start_middle_end: command not found

1 Ответ

1 голос
/ 16 марта 2020

Вы можете сделать это с PowerShell следующим образом:

variables:
    var: 'middle'
    start_middle_end: '123'


steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      $middleVar= "$(var)"
      $startEndVar= "start_$($middleVar)_end"
      $startEndVarValue = (Get-item env:$startEndVar).Value
      Write-Host $startEndVarValue
      # The output will be: 123
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...