Вопросы

Конвейер Azure DevOps не может расширять ни одну из переменных среды во время выполнения.

У меня проблема с новым конвейером, который я настраиваю для микросервиса в Azure DevOps, где конвейер не может ссылаться на переменные среды, предоставляемые средой сборки.

У меня есть этап в моем конвейере, который запускает сценарий Powershell, который распечатывает все переменные среды для целей отладки, и это позволяет мне подтвердить, что среда действительно содержит переменные, которые я пытаюсь использовать.

Эти переменные BUILD_DEFINITIONNAME = my-microservice-repo и BUILD_BUILDNUMBER = 20200519.2. По сути, я хочу объединить эти две переменные, чтобы создать другую переменную для имени моего контейнера докеров, чтобы у меня была переменная, равная $(BUILD_DEFINITIONNAME):$(BUILD_BUILDNUMBER), которая должна расшириться до my-microservice-repo:20200519.2. Мы будем называть эту переменную imageName. Я определил его в разделе переменных в моем скрипте .yml как

variables:
  - name: imageName
    value: $(BUILD_DEFINITIONNAME):$(BUILD_BUILDNUMBER)

Однако, если я попытаюсь использовать эту переменную на своих шагах Docker:

    - task: [email protected]
      inputs:
        dockerFile: Dockerfile
        azureSubscriptionEndpoint: 'endpoint'
        azureContainerRegistry: 'my container registry'
        imageName: $(imageName)
        action: 'Build an image'

    - task: [email protected]
      inputs:
        azureSubscriptionEndpoint: 'endpoint'
        azureContainerRegistry: 'my container registry'
        action: 'Push an image'
        imageName: $(imageName)

Затем, когда скрипт запускается, я получаю эту ошибку: ##[error]invalid argument "myazurecontainerregistry.azurecr.io/$(build_definitionname):$(build_buildnumber)" for "-t, --tag" flag: invalid reference format

Итак, очевидно, что он правильно объединяет строки, поскольку я получаю $(build_definitionname):$(build_buildnumber), однако они не расширяются, несмотря на то, что они оба существуют в печатных переменных, как я упоминал ранее.

Читать:
Как работать над двумя независимыми вещами одновременно, используя ветки git?

Есть ли что-то особенное, что мне нужно сделать, чтобы разрешить использование переменных среды в моем скрипте? У нас есть другие сценарии конвейера, которые работают нормально, из которых я скопировал этот сценарий yml, но мой отказывается работать, и я не могу понять почему, как и мои коллеги.

Любая помощь будет принята с благодарностью.

Похожие записи

Как мне сделать столкновения между квадратом и кругом, чтобы запустить игру в pygame?

admin

Ключ привязки Eclipse не работает для TFS

admin

Yii создает ошибку приложения на Ubuntu 13.04

admin

Обновите документ Firestore из облачной функции

admin

Как использовать указатель функции для возврата указателя функции?

admin

Snakemake — ноутбук Jupyter lab не находит ядро

admin