Я пытаюсь установить логику для определения выпуска с использованием пользовательских условий.
Например, если условие равняется некоторым данным, запустите этот шаг, иначе пропустите шаг.
Условие:
eq(variables['Release.Artifacts._XXXXX_.BuildNumber'], 'YYY')
Здесь _XXXXX_
- псевдоним источника, YYY
- номер сборки.
Кроме того, я пробовал следующее:
eq(variables['Build.BuildNumber'], 'YYY')
Номер сборки устанавливается во время сборки с использованием следующегодействие в определении сборки: (сценарий PowerShell)
Write-Host ("##vso[build.updatebuildnumber]YYY")
Однако запуск выпуска все равно пропускает этот шаг.
При проверке журналов я ясно вижу, что номер сборки равен моим (обязательным) данным:
[BUILD_BUILDID] --> [135]
[BUILD_BUILDNUMBER] --> [YYY]
[BUILD_BUILDURI] --> [vstfs:///Build/Build/135]
[BUILD_DEFINITIONID] --> [8]
[BUILD_DEFINITIONNAME] --> [XXXXX]
[BUILD_PROJECTID] --> [1591217f-c442-4ac1-8afd-072c15f20d59]
[BUILD_PROJECTNAME] --> [XXX Application]
[BUILD_REPOSITORY_ID] --> [1591217f-c442-4ac1-8afd-072c15f20d59]
[BUILD_REPOSITORY_NAME] --> [XXX Application]
[BUILD_REPOSITORY_PROVIDER] --> [TfsVersionControl]
[BUILD_REQUESTEDFOR] --> [Sergey]
[BUILD_REQUESTEDFORID] --> [6935e75f-f1d3-434d-9665-536155f280e1]
[BUILD_SOURCEBRANCH] --> [$/XXX Application/ZZZZ_699]
[BUILD_SOURCEBRANCHNAME] --> [ZZZZ_699]
[BUILD_SOURCEVERSION] --> [922]
[BUILD_TYPE] --> [Build]
[KEYVAULTNAME] --> [XXXkeyvault]
[KEYVAULTSECRETNAME] --> [sqlAdminPassword]
[MSDEPLOY_HTTP_USER_AGENT] --> [VSTS_e9a6b698-6440-443e-a398-c358fe7b1c29_release_15_264_1546_1]
[RELEASE_ARTIFACTS__XXXXX_BUILDID] --> [135]
[RELEASE_ARTIFACTS__XXXXX_BUILDNUMBER] --> [YYY]
[RELEASE_ARTIFACTS__XXXXX_BUILDURI] --> [vstfs:///Build/Build/135]
[RELEASE_ARTIFACTS__XXXXX_DEFINITIONID] --> [8]
[RELEASE_ARTIFACTS__XXXXX_DEFINITIONNAME] --> [XXXXX]
[RELEASE_ARTIFACTS__XXXXX_PROJECTID] --> [1591217f-c442-4ac1-8afd-072c15f20d59]
[RELEASE_ARTIFACTS__XXXXX_PROJECTNAME] --> [XXX Application]
[RELEASE_ARTIFACTS__XXXXX_REPOSITORY_ID] --> [1591217f-c442-4ac1-8afd-072c15f20d59]
[RELEASE_ARTIFACTS__XXXXX_REPOSITORY_NAME] --> [XXX Application]
[RELEASE_ARTIFACTS__XXXXX_REPOSITORY_PROVIDER] --> [TfsVersionControl]
[RELEASE_ARTIFACTS__XXXXX_REQUESTEDFOR] --> [Sergey]
[RELEASE_ARTIFACTS__XXXXX_REQUESTEDFORID] --> [6935e75f-f1d3-434d-9665-536155f280e1]
[RELEASE_ARTIFACTS__XXXXX_SOURCEBRANCH] --> [$/XXX Application/ZZZZ_699]
[RELEASE_ARTIFACTS__XXXXX_SOURCEBRANCHNAME] --> [ZZZZ_699]
[RELEASE_ARTIFACTS__XXXXX_SOURCEVERSION] --> [922]
[RELEASE_ARTIFACTS__XXXXX_TYPE] --> [Build]
Но журналы показывают, что оценка шага (условия) пропущена:
2018-05-26T10:25:26.7133654Z ##[debug]Evaluating condition for step: 'Execute Azure SQL : DacpacTask'
2018-05-26T10:25:26.7145496Z ##[debug]Evaluating: eq(variables['Release.Artifacts._XXXXX_.BuildNumber'], 'YYY')
2018-05-26T10:25:26.7145830Z ##[debug]Evaluating eq:
2018-05-26T10:25:26.7151621Z ##[debug]..Evaluating indexer:
2018-05-26T10:25:26.7200306Z ##[debug]....Evaluating variables:
2018-05-26T10:25:26.7204538Z ##[debug]....=> Object
2018-05-26T10:25:26.7204829Z ##[debug]....Evaluating String:
2018-05-26T10:25:26.7205923Z ##[debug]....=> 'Release.Artifacts._XXXXX_.BuildNumber'
2018-05-26T10:25:26.7223045Z ##[debug]..=> Null
2018-05-26T10:25:26.7223345Z ##[debug]..Evaluating String:
2018-05-26T10:25:26.7223658Z ##[debug]..=> 'YYY'
2018-05-26T10:25:26.7239489Z ##[debug]..=> Unable to coerce String to Null.
2018-05-26T10:25:26.7239951Z ##[debug]=> False
2018-05-26T10:25:26.7244414Z ##[debug]Expanded: eq(Null, 'YYY')
2018-05-26T10:25:26.7244768Z ##[debug]Result: False
Я застрял с ошибкой приведения - похоже, переменная Release.Artifacts._XXXXX_.BuildNumber
неоценивается или не существует.