azure-pipelines.yml 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. jobs:
  2. - job: GetPRNumber
  3. pool:
  4. vmImage: 'ubuntu-20.04'
  5. variables:
  6. SolutionDir: '$(Build.SourcesDirectory)'
  7. steps:
  8. - task: UseDotNet@2
  9. displayName: 'Use .NET 8.0 SDK'
  10. inputs:
  11. packageType: sdk
  12. useGlobalJson: true
  13. - task: CmdLine@2
  14. displayName: 'Run Build'
  15. inputs:
  16. script: ./build.sh --target OutputVersion --version-output-dir $(Build.ArtifactStagingDirectory)
  17. - task: PublishBuildArtifacts@1
  18. inputs:
  19. PathtoPublish: '$(Build.ArtifactStagingDirectory)'
  20. ArtifactName: 'PRNumber'
  21. publishLocation: 'Container'
  22. - job: Linux
  23. pool:
  24. vmImage: 'ubuntu-20.04'
  25. steps:
  26. - task: UseDotNet@2
  27. displayName: 'Use .NET 6.0 Runtime'
  28. inputs:
  29. packageType: runtime
  30. version: 6.0.x
  31. - task: UseDotNet@2
  32. displayName: 'Use .NET 8.0 SDK'
  33. inputs:
  34. packageType: sdk
  35. useGlobalJson: true
  36. - task: CmdLine@2
  37. displayName: 'Install Workloads'
  38. inputs:
  39. script: |
  40. dotnet workload install android macos wasm-tools
  41. - task: CmdLine@2
  42. displayName: 'Install Tizen Workload'
  43. inputs:
  44. targetType: 'inline'
  45. script: |
  46. curl -sSL https://raw.githubusercontent.com/Samsung/Tizen.NET/main/workload/scripts/workload-install.sh | sudo bash -s -- -d "/opt/hostedtoolcache/dotnet"
  47. - task: CmdLine@2
  48. displayName: 'Run Build'
  49. inputs:
  50. script: |
  51. dotnet --info
  52. printenv
  53. ./build.sh --target CiAzureLinux --configuration=Release
  54. - task: PublishTestResults@2
  55. inputs:
  56. testResultsFormat: 'VSTest'
  57. testResultsFiles: '$(Build.SourcesDirectory)/artifacts/test-results/*.trx'
  58. condition: not(canceled())
  59. - job: macOS
  60. variables:
  61. SolutionDir: '$(Build.SourcesDirectory)'
  62. pool:
  63. vmImage: 'macos-12'
  64. steps:
  65. - task: UseDotNet@2
  66. displayName: 'Use .NET 6.0 Runtime'
  67. inputs:
  68. packageType: runtime
  69. version: 6.0.x
  70. - task: UseDotNet@2
  71. displayName: 'Use .NET 8.0 SDK'
  72. inputs:
  73. packageType: sdk
  74. useGlobalJson: true
  75. - task: CmdLine@2
  76. displayName: 'Install Workloads'
  77. inputs:
  78. script: |
  79. dotnet workload install android ios macos wasm-tools
  80. - task: CmdLine@2
  81. displayName: 'Install Tizen Workload'
  82. inputs:
  83. targetType: 'inline'
  84. script: |
  85. curl -sSL https://raw.githubusercontent.com/Samsung/Tizen.NET/main/workload/scripts/workload-install.sh | sudo bash
  86. - task: CmdLine@2
  87. displayName: 'Generate avalonia-native'
  88. inputs:
  89. script: |
  90. export COREHOST_TRACE=0
  91. export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
  92. export DOTNET_CLI_TELEMETRY_OPTOUT=1
  93. ./build.sh --target GenerateCppHeaders --configuration Release
  94. - task: Xcode@5
  95. inputs:
  96. actions: 'build'
  97. scheme: ''
  98. sdk: 'macosx12.3'
  99. configuration: 'Release'
  100. xcWorkspacePath: '**/*.xcodeproj/project.xcworkspace'
  101. xcodeVersion: '13' # Options: 8, 9, default, specifyPath
  102. args: '-derivedDataPath ./'
  103. - task: CmdLine@2
  104. displayName: 'Run Build'
  105. inputs:
  106. script: |
  107. export COREHOST_TRACE=0
  108. export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
  109. export DOTNET_CLI_TELEMETRY_OPTOUT=1
  110. which dotnet
  111. dotnet --info
  112. printenv
  113. ./build.sh --target CiAzureOSX --configuration Release --skip-previewer
  114. - task: PublishTestResults@2
  115. inputs:
  116. testResultsFormat: 'VSTest'
  117. testResultsFiles: '$(Build.SourcesDirectory)/artifacts/test-results/*.trx'
  118. condition: not(canceled())
  119. - task: PublishBuildArtifacts@1
  120. inputs:
  121. pathToPublish: '$(Build.SourcesDirectory)/Build/Products/Release/'
  122. artifactName: 'Avalonia.Native.OSX'
  123. condition: succeeded()
  124. - task: PublishBuildArtifacts@1
  125. inputs:
  126. pathtoPublish: '$(Build.SourcesDirectory)/artifacts/nuget'
  127. artifactName: 'NuGetOSX'
  128. condition: succeeded()
  129. - job: Windows
  130. pool:
  131. vmImage: 'windows-2022'
  132. variables:
  133. SolutionDir: '$(Build.SourcesDirectory)'
  134. steps:
  135. - task: UseDotNet@2
  136. displayName: 'Use .NET 6.0 Runtime'
  137. inputs:
  138. packageType: runtime
  139. version: 6.0.x
  140. - task: UseDotNet@2
  141. displayName: 'Use .NET 8.0 SDK'
  142. inputs:
  143. packageType: sdk
  144. useGlobalJson: true
  145. - task: CmdLine@2
  146. displayName: 'Install Workloads'
  147. inputs:
  148. script: |
  149. dotnet workload install android ios tvos wasm-tools
  150. - task: PowerShell@2
  151. displayName: 'Install Tizen Workload'
  152. inputs:
  153. targetType: 'inline'
  154. script: |
  155. (New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/Samsung/Tizen.NET/main/workload/scripts/workload-install.ps1') | Invoke-Expression
  156. - task: CmdLine@2
  157. displayName: 'Install Nuke'
  158. inputs:
  159. script: |
  160. dotnet tool install --global Nuke.GlobalTool --version 6.2.1
  161. - task: CmdLine@2
  162. displayName: 'Run Nuke'
  163. inputs:
  164. script: |
  165. set PATH=%PATH%;%USERPROFILE%\.dotnet\tools
  166. nuke --target CiAzureWindows --configuration Release
  167. - task: PublishTestResults@2
  168. inputs:
  169. testResultsFormat: 'VSTest'
  170. testResultsFiles: '$(Build.SourcesDirectory)/artifacts/test-results/*.trx'
  171. condition: not(canceled())
  172. - task: PublishBuildArtifacts@1
  173. inputs:
  174. pathtoPublish: '$(Build.SourcesDirectory)/artifacts/nuget'
  175. artifactName: 'NuGet'
  176. condition: succeeded()
  177. - task: PublishBuildArtifacts@1
  178. inputs:
  179. pathToPublish: '$(Build.SourcesDirectory)/artifacts/zip'
  180. artifactName: 'Samples'
  181. condition: succeeded()