Как передать атрибуты сборки или выпуска функции Azure - PullRequest
1 голос
/ 07 мая 2019

Я строю хранилище данных, которое требует определенных значений из конвейера.

Использование функции invoke azure работает, если я жестко кодирую значения, однако не работает, если я хочу создать или выпустить значения на лету.

https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/azure-function?view=azure-devops

Для моей функции требуется номер сборки, однако, когда я пытаюсь добавить следующее к параметрам запроса, вместо значений отправляются слова:

BuildNumber=$($env:BUILD_BUILDNUMBER)

или

BuildNumber=$env:BUILD_BUILDNUMBER

или BuildNumber = $ (build.BUILDNUMBER)

YAML

variables:
  ApplicationCI: 'Test'

steps:
- task: AzureFunction@1
  displayName: 'Azure Function: https://site.azurewebsites.net/api/address'
  inputs:
    function: 'https://site.azurewebsites.net/api/Address'
    key: 'MyKey=='
    method: GET
    queryParameters: 'ApplicationCI=$(ApplicationCI)&BuildNumber=$(build.BUILDNUMBER)&ring=-1&BuildDefinitionName=$(build.DEFINITIONNAME)&BuildOwnerId=$(build.QUEUEDBY)&BuildStartTime=$(system.PIPELINESTARTTIME)&ChangeSet=$(build.SOURCEVERSION)&ReleaseDefinitionName=$(release.DEFINITIONNAME)&ReleaseStart=$(release.DEPLOYMENT_STARTTIME)&SourceLocation=$(build.SOURCEBRANCH)&StagingFolder=$(system.ARTIFACTSDIRECTORY)'

или

variables:
  ApplicationCI: 'Test'

steps:
- task: AzureFunction@1
  displayName: 'Azure Function: https://site.azurewebsites.net/api/address'
  inputs:
    function: 'https://site.azurewebsites.net/api/address'
    key: 'MyKey=='
    method: POST
    headers: |
     {
     "ApplicationCI":"$(ApplicationCI)", 
     "BuildNumber": "$(build.BUILDNUMBER)", 
     "ring": "-1", 
     "BuildDefinitionName": "$(build.DEFINITIONNAME)", 
     "BuildOwnerId": "$(build.QUEUEDBY)", 
     "BuildStartTime": "$(system.PIPELINESTARTTIME)", 
     "ChangeSet": "$(build.SOURCEVERSION)", 
     "ReleaseDefinitionName": "$(release.DEFINITIONNAME)", 
     "ReleaseStart": "$(release.DEPLOYMENT_STARTTIME)",
     "SourceLocation": "$(build.SOURCEBRANCH)",
     "StagingFolder": "$(system.ARTIFACTSDIRECTORY)"
     }

Есть ли у кого-нибудь совет, как мне кодировать значение переменной для номера сборки в вызове функции invoke azure?

ОБНОВЛЕНИЕ Изменение, чтобы получить меня ближе

https://site.azurewebsites.net/api/address?code=mykey==&ApplicationCI=Test 1 & BuildNumber = 20190508,4 & кольцо = -1 & BuildDefinitionName = MyApplication-AzureFunction & BuildOwnerId = $ (build.QUEUEDBY) & BuildStartTime = $ (system.PIPELINESTARTTIME) & набор изменений = 23624 & ReleaseDefinitionName = MyApplication-AzureFunction & ReleaseStart = $ (release.DEPLOYMENT_STARTTIME) & SourceLocation = $ / тест / Main & StagingFolder = $ (system.ARTIFACTSDIRECTORY)

Apparently I only need values for these
$(build.QUEUEDBY)
$(system.PIPELINESTARTTIME)
$(release.DEPLOYMENT_STARTTIME)
$(system.ARTIFACTSDIRECTORY)

Thanks everyone for your help so far. 

1 Ответ

2 голосов
/ 07 мая 2019

Я не уверен, какую версию вы используете, но можно было бы установить номер сборки в сборке и прочитать ее.

С ядром .net вы можете сделать dotnet publish --version-suffix $env:BUILD_BUILDNUMBER (Если вы этого не сделаетеиспользуйте dotnet publish, чтобы сделать то же самое, а затем в коде

Assembly.GetExecutingAssembly().GetName().Version;

PS вы можете использовать информационную задачу сборки набора Azure.Не проверял, но он должен работать

...