Отладка сценария конвейера yaml

#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}}