azure-pipelines.yml 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  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.12.3
  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. pool:
  32. vmImage: 'macOS-10.14'
  33. steps:
  34. - task: DotNetCoreInstaller@0
  35. inputs:
  36. version: '2.1.403'
  37. - task: CmdLine@2
  38. displayName: 'Install Mono 5.18'
  39. inputs:
  40. script: |
  41. 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
  42. sudo installer -verbose -pkg ./mono.pkg -target /
  43. - task: Xcode@5
  44. inputs:
  45. actions: 'build'
  46. scheme: ''
  47. sdk: 'macosx10.14'
  48. configuration: 'Release'
  49. xcWorkspacePath: '**/*.xcodeproj/project.xcworkspace'
  50. xcodeVersion: 'default' # Options: 8, 9, default, specifyPath
  51. args: '-derivedDataPath ./'
  52. - task: CmdLine@2
  53. displayName: 'Install CastXML'
  54. inputs:
  55. script: |
  56. brew update
  57. brew install castxml
  58. - task: CmdLine@2
  59. displayName: 'Install Nuke'
  60. inputs:
  61. script: |
  62. dotnet tool install --global Nuke.GlobalTool --version 0.12.3
  63. - task: CmdLine@2
  64. displayName: 'Run Nuke'
  65. inputs:
  66. script: |
  67. export COREHOST_TRACE=0
  68. export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
  69. export DOTNET_CLI_TELEMETRY_OPTOUT=1
  70. which dotnet
  71. dotnet --info
  72. export PATH="$PATH:$HOME/.dotnet/tools"
  73. dotnet --info
  74. printenv
  75. nuke --target CiAzureOSX --configuration Release
  76. - task: PublishTestResults@2
  77. inputs:
  78. testResultsFormat: 'VSTest'
  79. testResultsFiles: '$(Build.SourcesDirectory)/artifacts/test-results/*.trx'
  80. condition: not(canceled())
  81. - task: PublishBuildArtifacts@1
  82. inputs:
  83. pathToPublish: '$(Build.SourcesDirectory)/Build/Products/Release/'
  84. artifactName: 'Avalonia.Native.OSX'
  85. condition: succeeded()
  86. - task: PublishBuildArtifacts@1
  87. inputs:
  88. pathtoPublish: '$(Build.SourcesDirectory)/artifacts/nuget'
  89. artifactName: 'NuGetOSX'
  90. condition: succeeded()
  91. - job: Windows
  92. pool:
  93. vmImage: 'windows-2019'
  94. steps:
  95. - task: CmdLine@2
  96. displayName: 'Install Nuke'
  97. inputs:
  98. script: |
  99. dotnet tool install --global Nuke.GlobalTool --version 0.12.3
  100. - task: CmdLine@2
  101. displayName: 'Run Nuke'
  102. inputs:
  103. script: |
  104. set PATH=%PATH%;%USERPROFILE%\.dotnet\tools
  105. nuke --target CiAzureWindows --configuration Release
  106. - task: PublishTestResults@2
  107. inputs:
  108. testResultsFormat: 'VSTest'
  109. testResultsFiles: '$(Build.SourcesDirectory)/artifacts/test-results/*.trx'
  110. condition: not(canceled())
  111. - task: PublishBuildArtifacts@1
  112. inputs:
  113. pathtoPublish: '$(Build.SourcesDirectory)/artifacts/nuget'
  114. artifactName: 'NuGet'
  115. condition: succeeded()
  116. - task: PublishBuildArtifacts@1
  117. inputs:
  118. pathToPublish: '$(Build.SourcesDirectory)/artifacts/zip'
  119. artifactName: 'Samples'
  120. condition: succeeded()