Spaces:
Build error
Build error
# | |
# Runs functional tests against the Slack channel. | |
# | |
# "name" here defines the build number format. Build number is accessed via $(Build.BuildNumber) | |
name: $(Build.BuildId) | |
pool: | |
vmImage: $[ coalesce( variables['VMImage'], 'windows-2019' ) ] # or 'windows-latest' or 'vs2017-win2016' | |
trigger: # ci trigger | |
batch: true | |
branches: | |
include: | |
- main | |
paths: | |
include: | |
- '*' | |
exclude: | |
- doc/ | |
- specs/ | |
- LICENSE | |
- README.md | |
- UsingTestPyPI.md | |
pr: # pr trigger | |
branches: | |
include: | |
- main | |
paths: | |
include: | |
- pipelines/botbuilder-python-ci-slack-test.yml | |
variables: | |
AppId: $(SlackTestBotAppId) | |
AppSecret: $(SlackTestBotAppSecret) | |
BotGroup: $(SlackTestBotBotGroup) | |
BotName: $(SlackTestBotBotName) | |
SlackBotToken: $(SlackTestBotSlackBotToken) | |
SlackClientSigningSecret: $(SlackTestBotSlackClientSigningSecret) | |
SlackVerificationToken: $(SlackTestBotSlackVerificationToken) | |
# AzureSubscription: define this in Azure | |
# SlackTestBotAppId: define this in Azure | |
# SlackTestBotAppSecret: define this in Azure | |
# SlackTestBotBotGroup: define this in Azure | |
# SlackTestBotBotName: define this in Azure | |
# SlackTestBotSlackBotToken: define this in Azure | |
# SlackTestBotSlackChannel: define this in Azure | |
# SlackTestBotSlackClientSigningSecret: define this in Azure | |
# SlackTestBotSlackVerificationToken: define this in Azure | |
# DeleteResourceGroup: (optional) define in Azure | |
steps: | |
- powershell: 'gci env:* | sort-object name | Format-Table -AutoSize -Wrap' | |
displayName: 'Display env vars' | |
- task: AzureCLI@2 | |
displayName: 'Create Azure resources' | |
inputs: | |
azureSubscription: $(AzureSubscription) | |
scriptType: pscore | |
scriptLocation: inlineScript | |
inlineScript: | | |
Set-PSDebug -Trace 1; | |
# set up resource group, bot channels registration, app service, app service plan | |
az deployment sub create --name "$(BotName)" --template-file "$(System.DefaultWorkingDirectory)/libraries/functional-tests/slacktestbot/deploymentTemplates/template-with-new-rg.json" --location "westus" --parameters groupName="$(BotGroup)" appId="$(AppId)" appSecret="$(AppSecret)" botId="$(BotName)" botSku="F0" newAppServicePlanName="$(BotName)" newWebAppName="$(BotName)" slackVerificationToken="$(SlackVerificationToken)" slackBotToken="$(SlackBotToken)" slackClientSigningSecret="$(SlackClientSigningSecret)" groupLocation="westus" newAppServicePlanLocation="westus"; | |
Set-PSDebug -Trace 0; | |
- powershell: | | |
7z a -tzip "$(System.DefaultWorkingDirectory)/libraries/functional-tests/slacktestbot/bot.zip" "$(System.DefaultWorkingDirectory)/libraries/functional-tests/slacktestbot/*" -aoa | |
displayName: 'Zip Bot' | |
- task: AzureCLI@1 | |
displayName: 'Deploy bot' | |
inputs: | |
azureSubscription: $(AzureSubscription) | |
scriptType: ps | |
scriptLocation: inlineScript | |
inlineScript: | | |
az webapp deployment source config-zip --resource-group "$(BotGroup)" --name "$(BotName)" --src "$(System.DefaultWorkingDirectory)/libraries/functional-tests/slacktestbot/bot.zip" --timeout 300 | |
- script: | | |
python -m pip install --upgrade pip | |
pip install -r ./libraries/functional-tests/requirements.txt | |
pip install pytest | |
displayName: 'Install test dependencies' | |
- script: | | |
pytest test_slack_client.py | |
workingDirectory: '$(System.DefaultWorkingDirectory)/libraries/functional-tests/tests/' | |
displayName: Run test | |
env: | |
BotName: $(SlackTestBotBotName) | |
SlackBotToken: $(SlackTestBotSlackBotToken) | |
SlackChannel: $(SlackTestBotSlackChannel) | |
SlackClientSigningSecret: $(SlackTestBotSlackClientSigningSecret) | |
SlackVerificationToken: $(SlackTestBotSlackVerificationToken) | |
- task: AzureCLI@1 | |
displayName: 'Delete resources' | |
inputs: | |
azureSubscription: $(AzureSubscription) | |
scriptLocation: inlineScript | |
inlineScript: 'call az group delete -n "$(BotGroup)" --yes' | |
condition: and(always(), ne(variables['DeleteResourceGroup'], 'false')) | |