Мне нужно пометить изображение docker с помощью фиксации в задаче сборки docker, но не завершить ha sh только первые 7 символов ha sh в azure конвейерах - PullRequest
0 голосов
/ 27 мая 2020

необходимость пометить изображение первыми 7 символами фиксации имеет значение в azure конвейере сборки. но не удалось его получить, где-то отсутствует проблема с синтаксисом.

пробовал, как показано ниже

  - task: Bash@3
    inputs:
      targetType: 'inline'
      script: |
        # Write your commands here

        echo "##vso[task.setvariable variable=dockertag] $(build.sourceversion) | cut -c-7)"
        echo "$dockertag"

dockertag используется как тег в docker задаче сборки в конвейере.

it ничего не выводит. я что-то упустил или у нас есть альтернативный способ сделать это?

1 Ответ

0 голосов
/ 28 мая 2020

При использовании ##vso[task.setvariable способа установки переменной в скрипте значение переменной должно работать для последующих задач, но не текущей задачи. Попробуйте что-то вроде этого:

    - task: Bash@3
      inputs:
        targetType: 'inline'
        script: |
          # Write your commands here
          echo "##vso[task.setvariable variable=dockertag]$(Build.SourceVersion)|cut -c-7"
          echo $(Build.SourceVersion)
          echo done

    - task: Bash@3
      inputs:
        targetType: 'inline'
        script: |
          echo $(Build.SourceVersion)
          echo $(dockertag)
          echo '**********'
          echo $dockertag
          echo '**********'

Результат:

enter image description here

Итак, если ваш первый bash задача хорошо работает для установки переменной dockertag, в следующих шагах можно использовать переменную в формате $(dockertag), а не $dockertag.

Кроме того, это должно быть echo "##vso[task.setvariable variable=dockertag]$(Build.SourceVersion)|cut -c-7".

...