Вопросы

Конвейер 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), однако они не расширяются, несмотря на то, что они оба существуют в печатных переменных, как я упоминал ранее.

Читать:
Почему я не могу добавить роль реакции для участника?

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

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

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

Ошибка при добавлении ролей реакции в discord.py

admin

Объединения, псевдонимы и подбор текста на практике: что работает, а что нет?

admin

Собственный образ Windows Graalvm без консоли

admin

Отсутствующие метрики для конвейера Apache Beam (через SparkRunner / Dataproc)

admin

Pygame не обновляет отображение при попытке распечатать текст

admin

Покрытие Go для нескольких пакетов и значок покрытия Gitlab

admin