#azure #docker #dockerfile #azure-pipelines
#azure #docker #dockerfile #azure-конвейеры
Вопрос:
Я пытаюсь отладить сценарий конвейера в Azure, чтобы узнать, что это за переменные, но я не уверен в синтаксисе.
Я просмотрел документацию
Что я пробовал до сих пор
parameters:
deploymentName: ""
dependsOn: ""
env: ""
dockerfilePath: ""
buildContext: ""
repository: ""
envGroup: ""
dockerRegistryServiceConnection: ""
tag: ""
token: ""
runTests: ""
jobs:
- deployment: ${{ parameters.deploymentName }}
dependsOn: ${{ parameters.dependsOn }}
pool: "Private Docker"
environment: "${{ parameters.envGroup }}"
strategy:
runOnce:
deploy:
steps:
- checkout: self
- task: Docker@2
displayName: "ACR Login"
inputs:
command: login
containerRegistry: "${{ parameters.dockerRegistryServiceConnection }}"
##[debug]Debug!!!!!1 $runTests
##[debug]Debug!!!!!2 $parameters.runTests
##[debug]Debug!!!!!3 ${{parameters.runTests}}
- script: echo runTests in dockerbuild.yml ${{parameters.runTests}}
- script: echo runTests in dockerbuild.yml $parameters.runTests
- script: echo runTests in dockerbuild.yml $runTests
- task: Docker@2
displayName: Build
inputs:
command: build
repository: "${{ parameters.repository }}"
buildContext: "${{ parameters.buildContext }}"
dockerfile: "${{ parameters.dockerfilePath }}"
arguments: "--build-arg TOKEN=${{ parameters.token }} --build-arg RUNTESTS=${{ parameters.runTests }}"
tags: |
$(Build.BuildId)
latest
Проблема
Debug и echo ничего не печатают в сборке конвейера Azure:
##[debug]Debug!!!!!1 $runTests
##[debug]Debug!!!!!2 $parameters.runTests
##[debug]Debug!!!!!3 ${{parameters.runTests}}
- script: echo runTests in dockerbuild.yml ${{parameters.runTests}}
- script: echo runTests in dockerbuild.yml $parameters.runTests
- script: echo runTests in dockerbuild.yml $runTests
Вопрос
Является ли это правильным синтаксисом для печати в azure bash при запуске файла yaml?
Ответ №1:
Отладка сценария конвейера yaml
Похоже, вы неправильно определили параметры. Нам нужно предоставить name
, displayName
, type
, default
, values
, как показано ниже (не каждый атрибут является обязательным):
parameters:
- name: deploymentName
type: string
default: Product
Тогда мы могли бы использовать ${{ parameters.deploymentName }}
для получения значения.
Пожалуйста, проверьте параметры среды выполнения этого документа для получения более подробной информации.
Мой тестовый файл YAML:
parameters:
- name: deploymentName
type: string
default: Product
- name: dependsOn
type: string
default: Test
- name: envGroup
type: string
default: test
- name: runTests
type: number
default: 123
stages:
- stage: Build
jobs:
- job: Build
displayName: Build
pool:
name: MyPrivateAgent
steps:
- script: echo This is for Build
- stage: Dev
jobs:
- job: Test
displayName: Test
pool:
name: MyPrivateAgent
steps:
- script: echo This is for test
- deployment: ${{ parameters.deploymentName }}
dependsOn: ${{ parameters.dependsOn }}
pool:
name: MyPrivateAgent
environment: "${{ parameters.envGroup }}"
strategy:
runOnce:
deploy:
steps:
- checkout: self
- script: echo runTests in dockerbuild.yml ${{parameters.runTests}}
Результат теста:
Ответ №2:
Попробуйте это:
${{ parameters.runTests}}