Доступ к переменным из групп переменных внутри задачи сценария Python в конвейере Azure DevOps Yaml

Я использую задачу сценария Python типа «файл» в моем конвейере Azure DevOps Yaml. Мне нужно использовать переменные, которые я определил в моей группе переменных в файле Python. Следующее - моя задача по конвейеру yaml DevOps Azure.

        - task: PythonScript@0
    displayName: 'Run a Python script'
    inputs:
      scriptPath: 'pythonTest.py'

Любой совет о том, как я могу этого добиться?

Спасибо!

2 ответа

Решение

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

      variables:
- group: variableGroup

steps:
  - task: PythonScript@0
    displayName: 'Run a Python script'
    inputs:
      scriptPath: 'pythonTest.py'
      arguments: --variableInScript $(variableInVariableGroup)

А затем используйте в скрипте argparse.

https://docs.microsoft.com/en-us/azure/devops/pipelines/ecosystems/python?view=azure-devops#run-python-scripts

Если бы вы использовали встроенный скрипт, вы могли бы сделать это так:

      - task: PythonScript@0
  inputs:
    scriptSource: 'inline'
    script: |
      print('variableInVariableGroup: $(variableInVariableGroup)')

Согласно официальной документации Azure DevOps :

Системные и пользовательские переменные также внедряются в качестве переменных среды для вашей платформы. Когда переменные превращаются в переменные среды, имена переменных становятся прописными, а точки превращаются в символы подчеркивания. Например, имя переменной any.variable становится именем переменной $ANY_VARIABLE.

Так что вам просто нужно получить доступ к соответствующей переменной среды из вашего скрипта. В Python это можно сделать с помощьюos.environсловарь:

      import os

my_var = os.environ["MY_VAR"]