Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[devops] Improved diagnostics and implement deadlocked process termination. #21317

Open
wants to merge 17 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 12 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 19 additions & 1 deletion tools/devops/automation/scripts/bash/clean-bot.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,15 @@ df -h
# We don't care about errors in this section, we just want to clean as much as possible
set +e

# Clean workspace
(
REPO_PATH="SYSTEM_DEFAULTWORKINGDIRECTORY/$(basename "$BUILD_REPOSITORY_NAME")"
if test -d "$REPO_PATH"; then
cd "$REPO_PATH"
git clean -xfd
fi
)

# Delete all the simulator devices. These can take up a lot of space over time (I've seen 100+GB on the bots)
/Applications/Xcode.app/Contents/Developer/usr/bin/simctl delete all

Expand Down Expand Up @@ -118,14 +127,23 @@ XCODE_SELECT=$(xcode-select -p)

for oldXcode in "${oldXcodes[@]}"; do
if [ "$XCODE_SELECT" != "$oldXcode/Contents/Developer" ]; then
sudo rm -Rf "$oldXcode"
if test -d "$oldXcode"; then
sudo rm -Rf "$oldXcode"
fi
else
echo "Not removing $oldXcode because is the currently selected one."
fi
done

DIR="$(dirname "${BASH_SOURCE[0]}")"
"$DIR"/clean-simulator-runtime.sh
"$DIR"/kill-deadlocked-processes.sh

# Remove legacy Xamarin/MonoTouch stuff
sudo rm -Rf /Developer/MonoTouch
sudo rm -Rf /Library/Frameworks/Xamarin.iOS.framework
sudo rm -Rf /Library/Frameworks/Xamarin.Mac.framework
ls -R /Library/Frameworks

# Print disk status after cleaning
df -h
4 changes: 0 additions & 4 deletions tools/devops/automation/scripts/bash/clean-results-dir.sh

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@
set -o pipefail
IFS=$'\n\t'

# delete all watchOS simulators, we don't need them anymore
for i in $(xcrun simctl runtime list | grep "watchOS.*Ready" | sed -e 's/.* - //' -e 's/ .*//'); do
xcrun simctl runtime delete "$i"
done

xcrun simctl runtime list -j > simruntime.json
cat simruntime.json

Expand Down
6 changes: 0 additions & 6 deletions tools/devops/automation/scripts/bash/delete-library-dirs.sh

This file was deleted.

27 changes: 27 additions & 0 deletions tools/devops/automation/scripts/bash/kill-deadlocked-processes.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/bin/bash -e

echo "Looking for processes that have been stuck for more than a day, and will try to kill them."

# Collect the list of processes for the current user, including the CPU time.
# We then split the CPU time into separate fields, so that it's easier to figure out the total number of minutes later on.
IFS=$'\n'
PROCESSES=()
while IFS='' read -r line; do PROCESSES+=("$line"); done < <(ps -o cputime=,pid=,user=,lstart=,args= -U "$USER" -w -w -w | sed -e 's/\([0-9]*\):\([0-9][0-9]\)\.\([0-9][0-9]\)/\1 m \2 s \3 ms/' | sort -nr)

IFS=' '
for process in "${PROCESSES[@]}"; do
IFS=" " read -r -a FIELDS <<< "$process"
minutes=${FIELDS[0]}
pid=${FIELDS[6]}

echo "$process"

# looking for processes that have spent more than a day using the CPU (24h * 60min = 1440min)
if (( minutes > 1440 )); then
echo " This process has been stuck for more than $minutes minutes, so assuming it's deadlocked and we'll try to kill it:"
echo " kill -9 $pid"
kill -9 "$pid" | sed 's/^/ /' || true
fi
done

echo "No (more) processes stuck for more than a day."
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Dump the environment to see what we're working with.
& "$Env:SYSTEM_DEFAULTWORKINGDIRECTORY\xamarin-macios\tools\devops\automation\scripts\show_env.ps1"
& "$Env:SYSTEM_DEFAULTWORKINGDIRECTORY\xamarin-macios\tools\devops\automation\scripts\show_bot_info.ps1"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
& "$Env:SYSTEM_DEFAULTWORKINGDIRECTORY\xamarin-macios\tools\devops\automation\scripts\show_bot_info.ps1"
& "$Env:SYSTEM_DEFAULTWORKINGDIRECTORY\$Env:BUILD_REPOSITORY_NAME\tools\devops\automation\scripts\show_bot_info.ps1"

Copy link
Member Author

@rolfbjarne rolfbjarne Oct 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

$Env:BUILD_REPOSITORY_NAME is xamarin/xamarin-macios, so this replacement doesn't work as-is.

Copy link
Member Author

@rolfbjarne rolfbjarne Oct 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've updated all of these to not have xamarin-macios hardcoded anymore.


# Set a few variables
$Env:DOTNET = "$Env:BUILD_SOURCESDIRECTORY\xamarin-macios\tests\dotnet\Windows\bin\dotnet\dotnet.exe"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
$Env:DOTNET = "$Env:BUILD_SOURCESDIRECTORY\xamarin-macios\tests\dotnet\Windows\bin\dotnet\dotnet.exe"
$Env:DOTNET = "$Env:BUILD_SOURCESDIRECTORY\$Env:BUILD_REPOSITORY_NAME\\tests\dotnet\Windows\bin\dotnet\dotnet.exe"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,14 @@ if ($IsMacOS -or $IsLinux) {
Write-Host "COMPUTERNAME: ${env:COMPUTERNAME}"
}

gci env: | format-table -autosize

gci env: | format-table -autosize | Out-String -Width 8192

gci env: | format-table -autosize -wrap
Get-ChildItem env: | Sort-Object -Property Name | Format-Table -AutoSize | Out-String -Width 81920

if ($IsMacOS) {
Write-Host ""
Write-Host "## Uptime"
Write-Host ""
uptime

Write-Host ""
Write-Host "## System profile"
Write-Host ""
Expand All @@ -25,10 +26,24 @@ if ($IsMacOS) {
Write-Host ""
ifconfig | grep 'inet '

Write-Host ""
Write-Host "## Top processes (ps)"
Write-Host ""
ps aux

Write-Host ""
Write-Host "## Python3 location:"
Write-Host ""
which python3

Write-Host ""
Write-Host "## Pip3 version:"
Write-Host ""
pip3 -V

Write-Host ""
Write-Host "## Top processes"
Write-Host "## Hardware info"
Write-Host ""
top -l 1 -o TIME
ioreg -l | grep -e Manufacturer -e 'Vendor Name'
}

6 changes: 0 additions & 6 deletions tools/devops/automation/scripts/show_python_env.ps1

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ steps:
repositoryAlias: ${{ parameters.repositoryAlias }}
commit: ${{ parameters.commit }}

- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_env.ps1
displayName: 'Show Environment'
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
- pwsh: $(System.DefaultWorkingDirectory)/$(Build.Repository.Name)/tools/devops/automation/scripts/show_bot_info.ps1

displayName: 'Show Bot Info'

- pwsh: |
if (Test-Path "$Env:SYSTEM_DEFAULTWORKINGDIRECTORY/Artifacts" -PathType Container) {
Expand Down
4 changes: 2 additions & 2 deletions tools/devops/automation/templates/common/configure.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ steps:
name: decisions
displayName: 'Make decisions'

- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_env.ps1
displayName: 'Show Environment'
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
- pwsh: $(System.DefaultWorkingDirectory)/$(Build.Repository.Name)/tools/devops/automation/scripts/show_bot_info.ps1

displayName: 'Show Bot Info'

- pwsh: |
Import-Module $Env:SYSTEM_DEFAULTWORKINGDIRECTORY/xamarin-macios/tools/devops/automation/scripts/MaciosCI.psd1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ steps:
name: decisions
displayName: 'Make decisions'

- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_env.ps1
displayName: 'Show Environment'
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
- pwsh: $(System.DefaultWorkingDirectory)/$(Build.Repository.Name)/tools/devops/automation/scripts/show_bot_info.ps1

displayName: 'Show Bot Info'

- pwsh: |
Import-Module $Env:SYSTEM_DEFAULTWORKINGDIRECTORY/xamarin-macios/tools/devops/automation/scripts/MaciosCI.psd1
Expand Down
20 changes: 2 additions & 18 deletions tools/devops/automation/templates/common/setup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,30 +17,14 @@ steps:
- bash: $(Build.SourcesDirectory)/xamarin-macios/tools/devops/automation/scripts/bash/fix-github-ssh-key.sh
displayName: 'Fix GitHub SSH host key'

- bash: cd $(System.DefaultWorkingDirectory)/xamarin-macios/ && git clean -xdf
displayName: 'Clean workspace'
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
- pwsh: $(System.DefaultWorkingDirectory)/$(Build.Repository.Name)/tools/devops/automation/scripts/show_bot_info.ps1

displayName: 'Show Bot Info'

- bash: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/bash/clean-bot.sh
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- bash: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/bash/clean-bot.sh
- bash: $(System.DefaultWorkingDirectory)/$(Build.Repository.Name)/tools/devops/automation/scripts/bash/clean-bot.sh

displayName: 'Clean bot'
continueOnError: true
timeoutInMinutes: 60

- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_env.ps1
displayName: 'Show Environment'

- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_python_env.ps1
displayName: 'Show Python information'

- bash: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/bash/delete-library-dirs.sh
displayName: 'Delete library folders'
timeoutInMinutes: 5

- bash: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/bash/clean-results-dir.sh
workingDirectory: $(System.DefaultWorkingDirectory)
displayName: 'Clear results directory'
timeoutInMinutes: 5
continueOnError: true

- bash: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/bash/remove-ui-prompt.sh
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- bash: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/bash/remove-ui-prompt.sh
- bash: $(System.DefaultWorkingDirectory)/$(Build.Repository.Name)/tools/devops/automation/scripts/bash/remove-ui-prompt.sh

env:
OSX_KEYCHAIN_PASS: ${{ parameters.keyringPass }}
Expand Down
19 changes: 6 additions & 13 deletions tools/devops/automation/templates/mac/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,18 +64,16 @@ steps:
condition: succeededOrFailed() # we do not care about the previous process cleanup
continueOnError: true

- bash: cd $(System.DefaultWorkingDirectory)/xamarin-macios/ && git clean -xdf
displayName: 'Clean workspace'

# download the packages that have been created, install them, later download the zip files that contain the already built
# tests and execute them.

- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_env.ps1
displayName: 'Show Environment'
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
- pwsh: $(System.DefaultWorkingDirectory)/$(Build.Repository.Name)/tools/devops/automation/scripts/show_bot_info.ps1

displayName: 'Show Bot Info'

- bash: |
ioreg -l | grep -e Manufacturer -e 'Vendor Name'
displayName: 'Dump Hardware'
- bash: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/bash/clean-bot.sh
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- bash: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/bash/clean-bot.sh
- bash: $(System.DefaultWorkingDirectory)/$(Build.Repository.Name)/tools/devops/automation/scripts/bash/clean-bot.sh

displayName: 'Clean bot'
continueOnError: true
timeoutInMinutes: 60

- bash: |
if [[ $(ioreg -l | grep -e 'VMware' | wc -l) -ne 0 ]]; then
Expand All @@ -95,11 +93,6 @@ steps:

displayName: 'Set VM Vendor'

- bash: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/bash/clean-bot.sh
displayName: 'Clean bot'
continueOnError: true
timeoutInMinutes: 60

# Use a cmdlet to check if the space available in the devices root system is larger than 50 gb. If there is not
# enough space available it:
# 1. Set the status of the build to error. It is not a failure since no tests have been ran.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ jobs:
- checkout: release-scripts
clean: true

- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_env.ps1
displayName: 'Show Environment'
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
- pwsh: $(System.DefaultWorkingDirectory)/$(Build.Repository.Name)/tools/devops/automation/scripts/show_bot_info.ps1

displayName: 'Show Bot Info'

- bash: |
sudo rm -Rf $(Build.SourcesDirectory)/package
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ steps:
version: 3.x
displayName: 'Install .NET Core SDK 3.x needed for ESRP'

- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_env.ps1
displayName: 'Show Environment'
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
- pwsh: $(System.DefaultWorkingDirectory)/$(Build.Repository.Name)/tools/devops/automation/scripts/show_bot_info.ps1

displayName: 'Show Bot Info'

- task: MicroBuildSigningPlugin@4
displayName: 'Install Signing Plugin'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,8 @@ steps:
Azure.DropPrefix: ${{ parameters.uploadPrefix }}package
GitHub.Context: 'vsts-devdiv artifacts'

- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_env.ps1
displayName: 'Show Environment'
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
- pwsh: $(System.DefaultWorkingDirectory)/$(Build.Repository.Name)/tools/devops/automation/scripts/show_bot_info.ps1

displayName: 'Show Bot Info'

- pwsh: |
Import-Module $Env:SYSTEM_DEFAULTWORKINGDIRECTORY\\xamarin-macios\\tools\\devops\\automation\\scripts\\MaciosCI.psd1
Expand Down
4 changes: 2 additions & 2 deletions tools/devops/automation/templates/tests/publish-html.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ steps:

- template: download-artifacts.yml

- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_env.ps1
displayName: 'Show Environment'
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
- pwsh: $(System.DefaultWorkingDirectory)/$(Build.Repository.Name)/tools/devops/automation/scripts/show_bot_info.ps1

displayName: 'Show Bot Info'

# build a message with all the content of all tests, to do so, we get the labels and to pass them to pwsh we do a join with ;
# as the separator
Expand Down
8 changes: 4 additions & 4 deletions tools/devops/automation/templates/windows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ steps:
repositoryAlias: ${{ parameters.repositoryAlias }}
commit: ${{ parameters.commit }}

- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_env.ps1
displayName: 'Dump Environment'
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
- pwsh: $(System.DefaultWorkingDirectory)/$(Build.Repository.Name)/tools/devops/automation/scripts/show_bot_info.ps1

displayName: 'Show Bot Info'

- ${{ if or(contains(variables['Build.Reason'], 'ResourceTrigger'), contains(variables['Build.Reason'], 'BuildCompletion'), contains(variables['Build.DefinitionName'], 'xamarin-macios-ci-tests'), contains(variables['Build.DefinitionName'], 'xamarin-macios-pr-tests')) }}:
- download: macios
Expand Down Expand Up @@ -127,8 +127,8 @@ steps:
displayName: "Write and verify id_rsa"
continueOnError: true

- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_env.ps1
displayName: 'Show Environment'
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
- pwsh: $(System.DefaultWorkingDirectory)/$(Build.Repository.Name)/tools/devops/automation/scripts/show_bot_info.ps1

displayName: 'Show Bot Info'

- pwsh: |
Import-Module $Env:SYSTEM_DEFAULTWORKINGDIRECTORY\\xamarin-macios\\tools\\devops\\automation\\scripts\\MaciosCI.psd1
Expand Down
4 changes: 2 additions & 2 deletions tools/devops/automation/templates/windows/reenable-mac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ steps:
repositoryAlias: ${{ parameters.repositoryAlias }}
commit: ${{ parameters.commit }}

- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_env.ps1
displayName: 'Dump Environment'
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- pwsh: $(System.DefaultWorkingDirectory)/xamarin-macios/tools/devops/automation/scripts/show_bot_info.ps1
- pwsh: $(System.DefaultWorkingDirectory)/$(Build.Repository.Name)/tools/devops/automation/scripts/show_bot_info.ps1

displayName: 'Show Bot Info'

- task: AzureKeyVault@2
inputs:
Expand Down
Loading