1
0

azure-pipelines-integrationtests.yml 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  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. pkill node
  25. pkill testmanagerd
  26. appium > appium.out &
  27. pkill IntegrationTestApp
  28. sudo xcode-select -s /Applications/Xcode_15.2.app/Contents/Developer
  29. ./build.sh CompileNative
  30. sudo xcode-select -s /Applications/Xcode_14.3.app/Contents/Developer
  31. rm -rf $(osascript -e "POSIX path of (path to application id \"net.avaloniaui.avalonia.integrationtestapp\")")
  32. pkill IntegrationTestApp
  33. ./samples/IntegrationTestApp/bundle.sh
  34. open -n ./samples/IntegrationTestApp/bin/Debug/net8.0/osx-$arch/publish/IntegrationTestApp.app
  35. pkill IntegrationTestApp
  36. displayName: 'Build IntegrationTestApp'
  37. - task: DotNetCoreCLI@2
  38. displayName: 'Run Integration Tests'
  39. inputs:
  40. command: 'test'
  41. projects: 'tests/Avalonia.IntegrationTests.Appium/Avalonia.IntegrationTests.Appium.csproj'
  42. arguments: '-l "console;verbosity=detailed"'
  43. - script: |
  44. pkill IntegrationTestApp
  45. pkill node
  46. displayName: 'Stop Appium'
  47. - publish: appium.out
  48. displayName: 'Publish appium logs on failure'
  49. condition: failed()
  50. - job: Windows
  51. pool:
  52. vmImage: 'windows-2022'
  53. steps:
  54. - task: UseDotNet@2
  55. displayName: 'Use .NET 6.0 Runtime'
  56. inputs:
  57. packageType: runtime
  58. version: 6.0.x
  59. - task: UseDotNet@2
  60. displayName: 'Use .NET 8.0 SDK'
  61. inputs:
  62. packageType: sdk
  63. useGlobalJson: true
  64. - task: Windows Application Driver@0
  65. inputs:
  66. OperationType: 'Start'
  67. AgentResolution: '4K'
  68. displayName: 'Start WinAppDriver'
  69. - task: DotNetCoreCLI@2
  70. displayName: 'Build IntegrationTestApp'
  71. inputs:
  72. command: 'build'
  73. projects: 'samples/IntegrationTestApp/IntegrationTestApp.csproj'
  74. - task: DotNetCoreCLI@2
  75. displayName: 'Build test project'
  76. inputs:
  77. command: 'build'
  78. projects: 'tests\Avalonia.IntegrationTests.Appium\Avalonia.IntegrationTests.Appium.csproj'
  79. - task: VSTest@2
  80. displayName: 'Run Integration Tests'
  81. inputs:
  82. testAssemblyVer2: '**\bin\**\Avalonia.IntegrationTests.Appium.dll'
  83. runSettingsFile: 'tests\Avalonia.IntegrationTests.Appium\record-video.runsettings'
  84. - task: PublishTestResults@2
  85. displayName: 'Publish test results'
  86. inputs:
  87. testResultsFormat: 'XUnit'
  88. testResultsFiles: '**/*.trx'
  89. condition: succeededOrFailed()
  90. - task: Windows Application Driver@0
  91. inputs:
  92. OperationType: 'Stop'
  93. displayName: 'Stop WinAppDriver'