Azure значения конвейерной переменной по умолчанию - PullRequest
0 голосов
/ 07 апреля 2020

Я пишу azure конвейеров и использую переменные из групп переменных. В рамках повышения гибкости мы пытаемся сделать большинство частей конвейера настраиваемыми (больше переменных). Итак, я искал способ добавить значение по умолчанию в переменную, если его нет в группе переменных.

Способ, который мы используем, выглядит следующим образом:

variables:
  dockerId: $(docker_id)
  imageName: $(DOCKER_IMAGE_NAME)

Есть ли вариант для укажите переменную по умолчанию, если она не найдена в группе переменных. Примерно так:

variables:
  dockerId: $(docker_id:"defaultDockerId")
  imageName: $(DOCKER_IMAGE_NAME:"defaultDockerImageName")

Ответы [ 2 ]

1 голос
/ 08 апреля 2020

Вы не можете достичь этого непосредственно в azure конвейере. Azure конвейер не имеет этой функции в настоящее время, и этот синтаксис $(docker_id:"defaultDockerId") не поддерживается.

В качестве обходного пути вам, возможно, придется написать сценарии в задачах сценария, чтобы назначить значение по умолчанию, если переменные не существуют.

Пожалуйста, проверьте ниже python script:

Первая задача скрипта python проверяет, существует ли переменная, задает для нее значение по умолчанию и определяет переменную, используя print("##vso[task.setvariable variable=variableName]value").

(Обратите внимание, что на значение переменной variableTest можно ссылаться только в следующих задачах.)

- task: PythonScript@0
  displayName: 'setDefaultValue'
  inputs:
    scriptSource: inline
    script: |
     import os   

     b = os.getenv("variableTest","default value for variableTest")

     print("##vso[task.setvariable variable=variableTest]{b}".format(b=b))

- task: PythonScript@0    
  displayName: 'Run a Python script'    
  inputs:
    scriptSource: inline    
    script: |
        print("$(variableTest)")

Надеюсь, что выше поможет!

1 голос
/ 07 апреля 2020

Комментарий правильный, у вас не может быть значений по умолчанию (если вы не используете шаблоны и параметры , на которые вы, возможно, захотите взглянуть, но они не совсем то, что вам нужно). Вы можете использовать условие if, если знаете, когда переменная существует или нет (в файле yaml), или использовать задачу скрипта, как предлагает комментарий, вычислить значение в задаче скрипта и отправить его обратно в конвейер.

...