Я хочу настроить атрибут среды, чтобы выбрать программную среду для утверждения (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
Для этого варианта использования вы должны использовать параметры. Это связано с тем, что переменные недоступны на начальном этапе анализа конвейера.
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