diff --git a/build/yaml/botbuilder-dotnet-ci-facebook-test.yml b/build/yaml/botbuilder-dotnet-ci-facebook-test.yml index 77d8bfe9af..e36d693c79 100644 --- a/build/yaml/botbuilder-dotnet-ci-facebook-test.yml +++ b/build/yaml/botbuilder-dotnet-ci-facebook-test.yml @@ -44,13 +44,43 @@ variables: # FacebookTestBotBotName: define this in Azure # FacebookTestBotFacebookAccessToken: define this in Azure # FacebookTestBotFacebookAppSecret: define this in Azure -# FacebookTestBotFacebookVerifyToken: define this in Azure +# FacebookTestBotFacebookVerifyToken: (optional) define this in Azure. Useful for webhook testing for un-deleted resources post-execution. # FacebookTestBotSenderId: define this in Azure?: This var not needed in build 156862. Revisit this after the build's test is fixed & running. steps: - powershell: 'gci env:* | sort-object name | Format-Table -AutoSize -Wrap' displayName: 'Display env vars' +- powershell: | + $InvalidVariables = $FALSE + $Message = "Required variable 'REPLACE_VARIABLE' either null, empty or whitespaced. Please set up this variable in the pipeline configuration." + + if(!"$env:FacebookTestBotAppId".Trim()) {$InvalidVariables = $TRUE; Write-Host $Message.replace("REPLACE_VARIABLE", "FacebookTestBotAppId")} + if(!"$env:FacebookTestBotAppSecret".Trim()) {$InvalidVariables = $TRUE; Write-Host $Message.replace("REPLACE_VARIABLE", "FacebookTestBotAppSecret")} + if(!"$env:AzureSubscription".Trim()) {$InvalidVariables = $TRUE; Write-Host $Message.replace("REPLACE_VARIABLE", "AzureSubscription")} + if(!"$env:FacebookTestBotBotGroup".Trim()) {$InvalidVariables = $TRUE; Write-Host $Message.replace("REPLACE_VARIABLE", "FacebookTestBotBotGroup")} + if(!"$env:FacebookTestBotBotName".Trim()) {$InvalidVariables = $TRUE; Write-Host $Message.replace("REPLACE_VARIABLE", "FacebookTestBotBotName")} + if(!"$env:FacebookTestBotFacebookAccessToken".Trim()) {$InvalidVariables = $TRUE; Write-Host $Message.replace("REPLACE_VARIABLE", "FacebookTestBotFacebookAccessToken")} + if(!"$env:FacebookTestBotFacebookAppSecret".Trim()) {$InvalidVariables = $TRUE; Write-Host $Message.replace("REPLACE_VARIABLE", "FacebookTestBotFacebookAppSecret")} + if(!"$env:FacebookTestBotSenderId".Trim()) {$InvalidVariables = $TRUE; Write-Host $Message.replace("REPLACE_VARIABLE", "FacebookTestBotSenderId")} + + if($InvalidVariables){ + Write-Host "##vso[task.setvariable variable=InvalidVariables;]true" + Write-Host "##vso[task.complete result=Failed;]DONE" + } + displayName: Validate variables + +- powershell: | + # Set values in appsettings.json file. + $file = "$(Build.SourcesDirectory)\tests\Adapters\Microsoft.Bot.Builder.Adapters.Facebook.PrimaryTestBot\appsettings.json"; + + $content = Get-Content -Raw $file | ConvertFrom-Json; + $content.FacebookVerifyToken = "$(FacebookTestBotFacebookVerifyToken)"; + $content.FacebookAppSecret = "$(FacebookTestBotFaceBookAppSecret)"; + $content.FacebookAccessToken = "$(FacebookTestBotFacebookAccessToken)"; + $content | ConvertTo-Json | Set-Content $file; + displayName: 'Set values in appsettings.json file.' + - task: DotNetCoreCLI@2 displayName: 'dotnet publish testbot' inputs: @@ -101,7 +131,7 @@ steps: azureSubscription: '$(AzureSubscription)' scriptLocation: inlineScript inlineScript: 'call az group delete -n "$(BotGroup)" --yes' - condition: and(always(), ne(variables['DeleteResourceGroup'], 'false')) + condition: and(always(), ne(variables['DeleteResourceGroup'], 'false'), ne(variables.InvalidVariables, 'true')) - script: | cd .. diff --git a/build/yaml/botbuilder-dotnet-ci-webex-test.yml b/build/yaml/botbuilder-dotnet-ci-webex-test.yml index 26491f853a..af46afe305 100644 --- a/build/yaml/botbuilder-dotnet-ci-webex-test.yml +++ b/build/yaml/botbuilder-dotnet-ci-webex-test.yml @@ -56,6 +56,28 @@ steps: - powershell: 'gci env:* | sort-object name | Format-Table -AutoSize -Wrap' displayName: 'Display env vars' +- powershell: | + $InvalidVariables = $FALSE + $Message = "Required variable 'REPLACE_VARIABLE' either null, empty or whitespaced. Please set up this variable in the pipeline configuration." + + if(!"$env:WebexTestBotAppSecret".Trim()) {$InvalidVariables = $TRUE; Write-Host $Message.replace("REPLACE_VARIABLE", "WebexTestBotAppSecret")} + if(!"$env:WebexTestBotBotGroup".Trim()) {$InvalidVariables = $TRUE; Write-Host $Message.replace("REPLACE_VARIABLE", "WebexTestBotBotGroup")} + if(!"$env:WebexTestBotBotName".Trim()) {$InvalidVariables = $TRUE; Write-Host $Message.replace("REPLACE_VARIABLE", "WebexTestBotBotName")} + if(!"$env:WebexTestBotRefreshToken".Trim()) {$InvalidVariables = $TRUE; Write-Host $Message.replace("REPLACE_VARIABLE", "WebexTestBotRefreshToken")} + if(!"$env:WebexTestBotWebexBotAccessToken".Trim()) {$InvalidVariables = $TRUE; Write-Host $Message.replace("REPLACE_VARIABLE", "WebexTestBotWebexBotAccessToken")} + if(!"$env:WebexTestBotWebexBotUserName".Trim()) {$InvalidVariables = $TRUE; Write-Host $Message.replace("REPLACE_VARIABLE", "WebexTestBotWebexBotUserName")} + if(!"$env:WebexTestBotWebexIntegrationClientId".Trim()) {$InvalidVariables = $TRUE; Write-Host $Message.replace("REPLACE_VARIABLE", "WebexTestBotWebexIntegrationClientId")} + if(!"$env:WebexTestBotWebexIntegrationClientSecret".Trim()) {$InvalidVariables = $TRUE; Write-Host $Message.replace("REPLACE_VARIABLE", "WebexTestBotWebexIntegrationClientSecret")} + if(!"$env:WebexTestBotWebexRoomId".Trim()) {$InvalidVariables = $TRUE; Write-Host $Message.replace("REPLACE_VARIABLE", "WebexTestBotWebexRoomId")} + if(!"$env:WebexTestBotWebexWebhookName".Trim()) {$InvalidVariables = $TRUE; Write-Host $Message.replace("REPLACE_VARIABLE", "WebexTestBotWebexWebhookName")} + if(!"$env:WebexTestBotWebexWebhookSecret".Trim()) {$InvalidVariables = $TRUE; Write-Host $Message.replace("REPLACE_VARIABLE", "WebexTestBotWebexWebhookSecret")} + + if($InvalidVariables){ + Write-Host "##vso[task.setvariable variable=InvalidVariables;]true" + Write-Host "##vso[task.complete result=Failed;]DONE" + } + displayName: Validate variables + - task: DotNetCoreCLI@2 displayName: 'dotnet publish' inputs: @@ -107,7 +129,7 @@ steps: azureSubscription: '$(AzureSubscription)' scriptLocation: inlineScript inlineScript: 'call az group delete -n "$(BotGroup)" --yes' - condition: and(always(), ne(variables['DeleteResourceGroup'], 'false')) + condition: and(always(), ne(variables['DeleteResourceGroup'], 'false'), ne(variables.InvalidVariables, 'true')) - script: | cd ..