Получите текущую метку времени и объедините ее со строкой в файле yml

#azure-devops #continuous-integration #yaml #devops #pipeline

Вопрос:

Настройка конвейера сборки azure на основе yml, для публикации артефактов которого требуется имя на основе метки времени. Пытаюсь сделать что-то подобное

 'ArtifactName'   currentTimeStamp
 

Как это можно сделать в файле yml?

Ответ №1:

Это должно дать вам ожидаемый результат:

 trigger:
- master

pool:
  vmImage: ubuntu-latest

steps:
  - pwsh: |
      Write-Host "Setting up the date time for build variable"
      $date=$(Get-Date -format yyyyMMdd-Hmmss)
      Write-Host "##vso[task.setvariable variable=currentTimeStamp]$date"
    displayName: 'Geting timestamp'

  - task: PublishPipelineArtifact@1
    inputs:
      targetPath: '$(Pipeline.Workspace)'
      artifact: 'ArtifactName-$(currentTimeStamp)'
      publishLocation: 'pipeline'
 

введите описание изображения здесь

Комментарии:

1. Спасибо за ответ. Могу ли я узнать во втором варианте, почему переменная объявлена как mydate, а при объединении она является отметкой текущего времени

2. Моя ошибка 😉 так и должно быть currentTimeStamp .

3. ‘ArtifactName’ $(метка текущего времени) выдает ошибку «При анализе сопоставления блоков не найден ожидаемый ключ».