azure-pipelines.yml 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. jobs:
  2. - job: GetPRNumber
  3. pool:
  4. vmImage: 'windows-2022'
  5. variables:
  6. SolutionDir: '$(Build.SourcesDirectory)'
  7. steps:
  8. - task: PowerShell@2
  9. displayName: Get PR Number
  10. inputs:
  11. targetType: 'inline'
  12. script: |
  13. $prId = $env:System_PullRequest_PullRequestNumber
  14. Write-Host "PR Number is:-" $env:System_PullRequest_PullRequestNumber
  15. if (!([string]::IsNullOrWhiteSpace($prId)))
  16. {
  17. Set-Content -Path $env:Build_ArtifactStagingDirectory\prId.txt -Value $prId
  18. }
  19. - task: PublishBuildArtifacts@1
  20. inputs:
  21. PathtoPublish: '$(Build.ArtifactStagingDirectory)'
  22. ArtifactName: 'PRNumber'
  23. publishLocation: 'Container'
  24. - job: Linux
  25. pool:
  26. vmImage: 'ubuntu-20.04'
  27. steps:
  28. - task: UseDotNet@2
  29. displayName: 'Use .NET Core SDK 6.0.404'
  30. inputs:
  31. version: 6.0.404
  32. - task: UseDotNet@2
  33. displayName: 'Use .NET Core SDK 7.0.101'
  34. inputs:
  35. version: 7.0.101
  36. - task: CmdLine@2
  37. displayName: 'Install Workloads'
  38. inputs:
  39. script: |
  40. dotnet workload install wasm-tools wasm-experimental
  41. - task: CmdLine@2
  42. displayName: 'Run Build'
  43. inputs:
  44. script: |
  45. dotnet --info
  46. printenv
  47. ./build.sh --target CiAzureLinux --configuration=Release
  48. - task: PublishTestResults@2
  49. inputs:
  50. testResultsFormat: 'VSTest'
  51. testResultsFiles: '$(Build.SourcesDirectory)/artifacts/test-results/*.trx'
  52. condition: not(canceled())
  53. - job: macOS
  54. variables:
  55. SolutionDir: '$(Build.SourcesDirectory)'
  56. pool:
  57. vmImage: 'macos-12'
  58. steps:
  59. - task: UseDotNet@2
  60. displayName: 'Use .NET Core SDK 6.0.404'
  61. inputs:
  62. version: 6.0.404
  63. - task: UseDotNet@2
  64. displayName: 'Use .NET Core SDK 7.0.101'
  65. inputs:
  66. version: 7.0.101
  67. - task: CmdLine@2
  68. displayName: 'Install Workloads'
  69. inputs:
  70. script: |
  71. dotnet workload install wasm-tools wasm-experimental
  72. - task: CmdLine@2
  73. displayName: 'Generate avalonia-native'
  74. inputs:
  75. script: |
  76. export COREHOST_TRACE=0
  77. export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
  78. export DOTNET_CLI_TELEMETRY_OPTOUT=1
  79. ./build.sh --target GenerateCppHeaders --configuration Release
  80. - task: Xcode@5
  81. inputs:
  82. actions: 'build'
  83. scheme: ''
  84. sdk: 'macosx12.3'
  85. configuration: 'Release'
  86. xcWorkspacePath: '**/*.xcodeproj/project.xcworkspace'
  87. xcodeVersion: '13' # Options: 8, 9, default, specifyPath
  88. args: '-derivedDataPath ./'
  89. - task: CmdLine@2
  90. displayName: 'Run Build'
  91. inputs:
  92. script: |
  93. export COREHOST_TRACE=0
  94. export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
  95. export DOTNET_CLI_TELEMETRY_OPTOUT=1
  96. which dotnet
  97. dotnet --info
  98. printenv
  99. ./build.sh --target CiAzureOSX --configuration Release --skip-previewer
  100. - task: PublishTestResults@2
  101. inputs:
  102. testResultsFormat: 'VSTest'
  103. testResultsFiles: '$(Build.SourcesDirectory)/artifacts/test-results/*.trx'
  104. condition: not(canceled())
  105. - task: PublishBuildArtifacts@1
  106. inputs:
  107. pathToPublish: '$(Build.SourcesDirectory)/Build/Products/Release/'
  108. artifactName: 'Avalonia.Native.OSX'
  109. condition: succeeded()
  110. - task: PublishBuildArtifacts@1
  111. inputs:
  112. pathtoPublish: '$(Build.SourcesDirectory)/artifacts/nuget'
  113. artifactName: 'NuGetOSX'
  114. condition: succeeded()
  115. - job: Windows
  116. pool:
  117. vmImage: 'windows-2022'
  118. variables:
  119. SolutionDir: '$(Build.SourcesDirectory)'
  120. steps:
  121. - task: UseDotNet@2
  122. displayName: 'Use .NET Core SDK 6.0.404'
  123. inputs:
  124. version: 6.0.404
  125. - task: UseDotNet@2
  126. displayName: 'Use .NET Core SDK 7.0.101'
  127. inputs:
  128. version: 7.0.101
  129. - task: CmdLine@2
  130. displayName: 'Install Workloads'
  131. inputs:
  132. script: |
  133. dotnet workload install android ios wasm-tools wasm-experimental
  134. - task: CmdLine@2
  135. displayName: 'Install Nuke'
  136. inputs:
  137. script: |
  138. dotnet tool install --global Nuke.GlobalTool --version 6.2.1
  139. - task: CmdLine@2
  140. displayName: 'Run Nuke'
  141. inputs:
  142. script: |
  143. set PATH=%PATH%;%USERPROFILE%\.dotnet\tools
  144. nuke --target CiAzureWindows --configuration Release
  145. - task: PublishTestResults@2
  146. inputs:
  147. testResultsFormat: 'VSTest'
  148. testResultsFiles: '$(Build.SourcesDirectory)/artifacts/test-results/*.trx'
  149. condition: not(canceled())
  150. - task: PublishBuildArtifacts@1
  151. inputs:
  152. pathtoPublish: '$(Build.SourcesDirectory)/artifacts/nuget'
  153. artifactName: 'NuGet'
  154. condition: succeeded()
  155. - task: PublishBuildArtifacts@1
  156. inputs:
  157. pathToPublish: '$(Build.SourcesDirectory)/artifacts/zip'
  158. artifactName: 'Samples'
  159. condition: succeeded()