azure-pipelines.yml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. jobs:
  2. - job: Linux
  3. pool:
  4. vmImage: 'ubuntu-16.04'
  5. steps:
  6. - task: CmdLine@2
  7. displayName: 'Install CastXML'
  8. inputs:
  9. script: |
  10. sudo apt-get update
  11. sudo apt-get install castxml
  12. - task: CmdLine@2
  13. displayName: 'Install Nuke'
  14. inputs:
  15. script: |
  16. dotnet tool install --global Nuke.GlobalTool --version 0.24.0
  17. - task: CmdLine@2
  18. displayName: 'Run Nuke'
  19. inputs:
  20. script: |
  21. export PATH="$PATH:$HOME/.dotnet/tools"
  22. dotnet --info
  23. printenv
  24. nuke --target CiAzureLinux --configuration=Release
  25. - task: PublishTestResults@2
  26. inputs:
  27. testResultsFormat: 'VSTest'
  28. testResultsFiles: '$(Build.SourcesDirectory)/artifacts/test-results/*.trx'
  29. condition: not(canceled())
  30. - job: macOS
  31. variables:
  32. SolutionDir: '$(Build.SourcesDirectory)'
  33. pool:
  34. vmImage: 'macOS-10.14'
  35. steps:
  36. - task: UseDotNet@2
  37. displayName: 'Use .NET Core SDK 3.1.401'
  38. inputs:
  39. version: 3.1.401
  40. - task: CmdLine@2
  41. displayName: 'Install Mono 5.18'
  42. inputs:
  43. script: |
  44. curl -o ./mono.pkg https://download.mono-project.com/archive/5.18.0/macos-10-universal/MonoFramework-MDK-5.18.0.225.macos10.xamarin.universal.pkg
  45. sudo installer -verbose -pkg ./mono.pkg -target /
  46. - task: Xcode@5
  47. inputs:
  48. actions: 'build'
  49. scheme: ''
  50. sdk: 'macosx10.14'
  51. configuration: 'Release'
  52. xcWorkspacePath: '**/*.xcodeproj/project.xcworkspace'
  53. xcodeVersion: '10' # Options: 8, 9, default, specifyPath
  54. args: '-derivedDataPath ./'
  55. - task: CmdLine@2
  56. displayName: 'Install Nuke'
  57. inputs:
  58. script: |
  59. dotnet tool install --global Nuke.GlobalTool --version 0.24.0
  60. - task: CmdLine@2
  61. displayName: 'Run Nuke'
  62. inputs:
  63. script: |
  64. export COREHOST_TRACE=0
  65. export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
  66. export DOTNET_CLI_TELEMETRY_OPTOUT=1
  67. which dotnet
  68. dotnet --info
  69. export PATH="$PATH:$HOME/.dotnet/tools"
  70. dotnet --info
  71. printenv
  72. nuke --target CiAzureOSX --configuration Release --skip-previewer
  73. - task: PublishTestResults@2
  74. inputs:
  75. testResultsFormat: 'VSTest'
  76. testResultsFiles: '$(Build.SourcesDirectory)/artifacts/test-results/*.trx'
  77. condition: not(canceled())
  78. - task: PublishBuildArtifacts@1
  79. inputs:
  80. pathToPublish: '$(Build.SourcesDirectory)/Build/Products/Release/'
  81. artifactName: 'Avalonia.Native.OSX'
  82. condition: succeeded()
  83. - task: PublishBuildArtifacts@1
  84. inputs:
  85. pathtoPublish: '$(Build.SourcesDirectory)/artifacts/nuget'
  86. artifactName: 'NuGetOSX'
  87. condition: succeeded()
  88. - job: Windows
  89. pool:
  90. vmImage: 'windows-2019'
  91. variables:
  92. SolutionDir: '$(Build.SourcesDirectory)'
  93. steps:
  94. - task: UseDotNet@2
  95. displayName: 'Use .NET Core SDK 3.1.401'
  96. inputs:
  97. version: 3.1.401
  98. - task: CmdLine@2
  99. displayName: 'Install Nuke'
  100. inputs:
  101. script: |
  102. dotnet tool install --global Nuke.GlobalTool --version 0.24.0
  103. - task: CmdLine@2
  104. displayName: 'Run Nuke'
  105. inputs:
  106. script: |
  107. set PATH=%PATH%;%USERPROFILE%\.dotnet\tools
  108. nuke --target CiAzureWindows --configuration Release
  109. - task: PublishTestResults@2
  110. inputs:
  111. testResultsFormat: 'VSTest'
  112. testResultsFiles: '$(Build.SourcesDirectory)/artifacts/test-results/*.trx'
  113. condition: not(canceled())
  114. - task: PublishBuildArtifacts@1
  115. inputs:
  116. pathtoPublish: '$(Build.SourcesDirectory)/artifacts/nuget'
  117. artifactName: 'NuGet'
  118. condition: succeeded()
  119. - task: PublishBuildArtifacts@1
  120. inputs:
  121. pathToPublish: '$(Build.SourcesDirectory)/artifacts/zip'
  122. artifactName: 'Samples'
  123. condition: succeeded()