azure-pipelines-integrationtests.yml 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. jobs:
  2. - job: Mac
  3. pool:
  4. name: 'AvaloniaMacPool'
  5. steps:
  6. - task: UseDotNet@2
  7. displayName: 'Use .NET 6.0 Runtime'
  8. inputs:
  9. packageType: runtime
  10. version: 6.0.x
  11. - task: UseDotNet@2
  12. displayName: 'Use .NET 8.0 SDK'
  13. inputs:
  14. packageType: sdk
  15. useGlobalJson: true
  16. - script: system_profiler SPDisplaysDataType |grep Resolution
  17. displayName: 'Get Resolution'
  18. - script: |
  19. arch="x64"
  20. if [[ $(uname -m) == 'arm64' ]]; then
  21. arch="arm64"
  22. fi
  23. git clean -ffdx
  24. sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
  25. pkill node
  26. pkill testmanagerd
  27. appium > appium.out &
  28. pkill IntegrationTestApp
  29. ./build.sh CompileNative
  30. rm -rf $(osascript -e "POSIX path of (path to application id \"net.avaloniaui.avalonia.integrationtestapp\")")
  31. pkill IntegrationTestApp
  32. ./samples/IntegrationTestApp/bundle.sh
  33. open -n ./samples/IntegrationTestApp/bin/Debug/net8.0/osx-$arch/publish/IntegrationTestApp.app
  34. pkill IntegrationTestApp
  35. displayName: 'Build IntegrationTestApp'
  36. - task: DotNetCoreCLI@2
  37. displayName: 'Run Integration Tests'
  38. inputs:
  39. command: 'test'
  40. projects: 'tests/Avalonia.IntegrationTests.Appium/Avalonia.IntegrationTests.Appium.csproj'
  41. arguments: '-l "console;verbosity=detailed"'
  42. - script: |
  43. pkill IntegrationTestApp
  44. pkill node
  45. displayName: 'Stop Appium'
  46. - publish: appium.out
  47. displayName: 'Publish appium logs on failure'
  48. condition: failed()
  49. - job: Windows
  50. pool:
  51. vmImage: 'windows-2022'
  52. steps:
  53. - task: UseDotNet@2
  54. displayName: 'Use .NET 6.0 Runtime'
  55. inputs:
  56. packageType: runtime
  57. version: 6.0.x
  58. - task: UseDotNet@2
  59. displayName: 'Use .NET 8.0 SDK'
  60. inputs:
  61. packageType: sdk
  62. useGlobalJson: true
  63. - task: Windows Application Driver@0
  64. inputs:
  65. OperationType: 'Start'
  66. AgentResolution: '4K'
  67. displayName: 'Start WinAppDriver'
  68. - task: DotNetCoreCLI@2
  69. displayName: 'Build IntegrationTestApp'
  70. inputs:
  71. command: 'build'
  72. projects: 'samples/IntegrationTestApp/IntegrationTestApp.csproj'
  73. - task: DotNetCoreCLI@2
  74. displayName: 'Build test project'
  75. inputs:
  76. command: 'build'
  77. projects: 'tests\Avalonia.IntegrationTests.Appium\Avalonia.IntegrationTests.Appium.csproj'
  78. - task: VSTest@2
  79. displayName: 'Run Integration Tests'
  80. inputs:
  81. testAssemblyVer2: '**\bin\**\Avalonia.IntegrationTests.Appium.dll'
  82. runSettingsFile: 'tests\Avalonia.IntegrationTests.Appium\record-video.runsettings'
  83. - task: PublishTestResults@2
  84. displayName: 'Publish test results'
  85. inputs:
  86. testResultsFormat: 'XUnit'
  87. testResultsFiles: '**/*.trx'
  88. condition: succeededOrFailed()
  89. - task: Windows Application Driver@0
  90. inputs:
  91. OperationType: 'Stop'
  92. displayName: 'Stop WinAppDriver'