azure-pipelines.yml 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. trigger:
  2. - master
  3. pr:
  4. autoCancel: true
  5. branches:
  6. include:
  7. - master
  8. jobs:
  9. - job: WhatsNewUpdate
  10. displayName: '1. What s New Update'
  11. pool:
  12. vmImage: 'Ubuntu-16.04'
  13. demands: npm
  14. steps:
  15. - task: Npm@1
  16. displayName: 'npm install'
  17. inputs:
  18. workingDir: Tools/Gulp
  19. verbose: false
  20. - script: 'gulp tests-whatsnew'
  21. workingDirectory: Tools/Gulp
  22. displayName: 'Whats new'
  23. env:
  24. AZURE_PULLREQUESTID: $(System.PullRequest.PullRequestId)
  25. BROWSER_STACK_USERNAME: $(babylon.browserStack.userName)
  26. - job: DocumentationCheck
  27. displayName: '2. Documentation Check'
  28. pool:
  29. vmImage: 'Ubuntu-16.04'
  30. demands: npm
  31. steps:
  32. - task: Npm@1
  33. displayName: 'npm install'
  34. inputs:
  35. workingDir: Tools/Gulp
  36. verbose: false
  37. - script: 'gulp typedoc-check'
  38. workingDirectory: Tools/Gulp
  39. displayName: 'Typedoc check'
  40. - job: Linting
  41. displayName: '3. Linting'
  42. pool:
  43. vmImage: 'Ubuntu-16.04'
  44. demands: npm
  45. steps:
  46. - task: Npm@1
  47. displayName: 'npm install'
  48. inputs:
  49. workingDir: Tools/Gulp
  50. verbose: false
  51. - script: 'gulp fullLint'
  52. workingDirectory: Tools/Gulp
  53. displayName: 'Full Lint'
  54. - job: Build
  55. displayName: '4. Build'
  56. pool:
  57. vmImage: 'Ubuntu-16.04'
  58. demands: npm
  59. steps:
  60. - task: Npm@1
  61. displayName: 'npm install'
  62. inputs:
  63. workingDir: Tools/Gulp
  64. verbose: false
  65. - script: 'gulp typescript-all'
  66. workingDirectory: Tools/Gulp
  67. displayName: 'Typescript all'
  68. - job: Tests
  69. displayName: '5. Core Tests'
  70. pool:
  71. vmImage: 'Ubuntu-16.04'
  72. demands: npm
  73. steps:
  74. - task: Npm@1
  75. displayName: 'npm install'
  76. inputs:
  77. workingDir: Tools/Gulp
  78. verbose: false
  79. - script: 'gulp typescript-all'
  80. workingDirectory: Tools/Gulp
  81. displayName: 'Typescript all'
  82. - script: 'gulp tests-babylon-unit'
  83. workingDirectory: Tools/Gulp
  84. displayName: 'Unit Tests'
  85. - task: PublishTestResults@2
  86. condition: succeededOrFailed()
  87. inputs:
  88. testRunner: JUnit
  89. testResultsFiles: '.temp/testResults/UnitTests.xml'
  90. - script: |
  91. export DISPLAY=:99
  92. Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
  93. sleep 3 # give xvfb some time to start
  94. gulp tests-validation-virtualscreen
  95. workingDirectory: Tools/Gulp
  96. displayName: 'Visual Tests'
  97. - task: PublishTestResults@2
  98. condition: succeededOrFailed()
  99. inputs:
  100. testRunner: JUnit
  101. testResultsFiles: '.temp/testResults/ValidationTests.xml'
  102. - script: 'gulp tests-validation-browserstack'
  103. workingDirectory: Tools/Gulp
  104. displayName: 'Browser Stack Tests'
  105. env:
  106. TRAVIS_BUILD_NUMBER: $(Build.BuildNumber)
  107. BROWSER_STACK_USERNAME: $(babylon.browserStack.userName)
  108. BROWSER_STACK_ACCESS_KEY: $(babylon.browserStack.userToken)
  109. - job: ModuleTests
  110. displayName: '6. Module Tests'
  111. pool:
  112. vmImage: 'Ubuntu-16.04'
  113. demands: npm
  114. steps:
  115. - task: Npm@1
  116. displayName: 'npm install'
  117. inputs:
  118. workingDir: Tools/Gulp
  119. verbose: false
  120. - script: 'gulp typescript-all'
  121. workingDirectory: Tools/Gulp
  122. displayName: 'Typescript all'
  123. - script: 'gulp tests-modules'
  124. workingDirectory: Tools/Gulp
  125. displayName: 'Tests modules'
  126. - script: 'sudo gulp localdev-es6'
  127. workingDirectory: Tools/Gulp
  128. displayName: 'Npm link ES6'
  129. - script: 'gulp tests-es6Modules'
  130. workingDirectory: Tools/Gulp
  131. displayName: 'Tests ES6'
  132. - task: PublishTestResults@2
  133. condition: succeededOrFailed()
  134. inputs:
  135. testRunner: JUnit
  136. testResultsFiles: '.temp/testResults/ModuleTestsVanilla.xml'
  137. - task: PublishTestResults@2
  138. condition: succeededOrFailed()
  139. inputs:
  140. testRunner: JUnit
  141. testResultsFiles: '.temp/testResults/ModuleTestsWebpack.xml'
  142. - job: ViewerTests
  143. displayName: '7. Viewer Tests'
  144. pool:
  145. vmImage: 'Ubuntu-16.04'
  146. demands: npm
  147. steps:
  148. - task: Npm@1
  149. displayName: 'npm install'
  150. inputs:
  151. workingDir: Tools/Gulp
  152. verbose: false
  153. - script: 'gulp typescript-all'
  154. workingDirectory: Tools/Gulp
  155. displayName: 'Typescript all'
  156. - script: 'gulp tests-viewer-unit'
  157. workingDirectory: Tools/Gulp
  158. displayName: 'Unit Tests'
  159. - task: PublishTestResults@2
  160. condition: succeededOrFailed()
  161. inputs:
  162. testRunner: JUnit
  163. testResultsFiles: '.temp/testResults/ViewerUnitTests.xml'
  164. - script: |
  165. export DISPLAY=:99
  166. Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
  167. sleep 3 # give xvfb some time to start
  168. gulp tests-viewer-validation-virtualscreen
  169. workingDirectory: Tools/Gulp
  170. displayName: 'Visual Tests'
  171. - task: PublishTestResults@2
  172. condition: succeededOrFailed()
  173. inputs:
  174. testRunner: JUnit
  175. testResultsFiles: '.temp/testResults/ViewerValidationTests.xml'