Условное утверждение заданий конвейера в лазурных конвейерах

Я хочу настроить атрибут среды, чтобы выбрать программную среду для утверждения (dev, preprod, prod). Когда я пытаюсь запустить конвейер, я вижу эту ошибку. Есть ли альтернатива?

Job : Environment $(environment) could not be found. The environment does not exist or has not been authorized for use.

    variables:
      environment: dev
    jobs:
      - deployment: test
        displayName: test
        timeoutInMinutes: 0
        # creates an environment if it doesn't exist
        environment: $(environment)
        strategy:
          runOnce:
            deploy:
              steps:
                - checkout: self
                  clean: true
                  displayName : Checkout repository
                - task: NodeTool@0
                  inputs:
                    versionSpec: '16.x'
                    checkLatest: true
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
15
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Для этого варианта использования вы должны использовать параметры. Это связано с тем, что переменные недоступны на начальном этапе анализа конвейера.

parameters:
- name: "environment"
  type: string
  default: "development"

А потом environment: ${{ parameters.environment }}

Или, если вы хотите пофантазировать, вы можете сделать что-то вроде этого:

parameters:
 - name: "environments"
   type: object
   default:
   - name: development
     param1: value
     param2: value
   - name: test
     param1: value
     param2: value

# This will look through the environment parameter and create a job for each environment.

- ${{ each environment in parameters.environments }} :
    jobs:
      - deployment: test
        #read in vars from a file in variables/development.yml
        variables: variables/${{ environment.name }}.yml
        displayName: test
        timeoutInMinutes: 0
        # creates an environment if it doesn't exist
        environment: ${{ environment.name }}
        strategy:
          runOnce:
            deploy:
              steps:
                - checkout: self
                  clean: true
                  displayName : Checkout repository
                - task: NodeTool@0
                  inputs:
                    versionSpec: '16.x'
                    checkLatest: true

Другие вопросы по теме