2
0

azure-pipelines.yml 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. name: ng-alain
  2. trigger:
  3. - master
  4. pool:
  5. vmImage: 'ubuntu-latest'
  6. pr:
  7. autoCancel: true
  8. branches:
  9. exclude:
  10. - gh-pages
  11. stages:
  12. - stage: Env
  13. jobs:
  14. - job: Nodes
  15. steps:
  16. - task: NodeTool@0
  17. inputs:
  18. versionSpec: '12.14.1'
  19. displayName: 'Install Node.js'
  20. - stage: build
  21. dependsOn: env
  22. jobs:
  23. - job: Build
  24. steps:
  25. - script: yarn install
  26. displayName: 'Install'
  27. - script: |
  28. node ./scripts/_ci/github-comment.js "RELEASE" "[Using release @delon, Preview Preparing...](https://dev.azure.com/ng-alain/ng-alain/_build/results?buildId=$(Build.BuildId))"
  29. displayName: 'Comment on github'
  30. env:
  31. ACCESS_REPO: $(ACCESS_REPO)
  32. ACCESS_TOKEN: $(ACCESS_TOKEN)
  33. - task: Bash@3
  34. displayName: 'Build'
  35. inputs:
  36. targetType: 'filePath'
  37. filePath: './scripts/_ci/deploy-pipelines.sh'
  38. - script: ls -al dist/
  39. displayName: 'List build'
  40. - script: |
  41. export DEPLOY_DOMAIN=https://preview-${SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}-ng-alain.surge.sh
  42. echo "Deploy to $DEPLOY_DOMAIN"
  43. cp ./dist/index.html ./dist/404.html
  44. npx surge --project ./dist --domain $DEPLOY_DOMAIN
  45. displayName: 'Deploy Site'
  46. env:
  47. ACCESS_REPO: $(ACCESS_REPO)
  48. ACCESS_TOKEN: $(ACCESS_TOKEN)
  49. SURGE_LOGIN: $(SURGE_LOGIN)
  50. SURGE_TOKEN: $(SURGE_TOKEN)
  51. - script: |
  52. export DEPLOY_DOMAIN=https://preview-${SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}-ng-alain.surge.sh
  53. node ./scripts/_ci/github-comment.js "RELEASE" "[Using release @delon, Preview is ready!]($DEPLOY_DOMAIN)"
  54. displayName: 'Update comment on github'
  55. env:
  56. ACCESS_REPO: $(ACCESS_REPO)
  57. ACCESS_TOKEN: $(ACCESS_TOKEN)
  58. - job: Build_Failed
  59. dependsOn: Build
  60. condition: failed()
  61. steps:
  62. - checkout: self
  63. displayName: 'Checkout'
  64. clean: true
  65. fetchDepth: 1
  66. - script: yarn install
  67. displayName: 'Install'
  68. - script: |
  69. node ./scripts/_ci/github-comment.js "RELEASE" "[Using release @delon, Preview Failed](https://dev.azure.com/ng-alain/delon/_build/results?buildId=$(Build.BuildId))"
  70. displayName: 'Comment on github'
  71. env:
  72. ACCESS_REPO: $(ACCESS_REPO)
  73. ACCESS_TOKEN: $(ACCESS_TOKEN)
  74. - stage: build_day
  75. dependsOn: env
  76. jobs:
  77. - job: Build
  78. steps:
  79. - script: yarn install
  80. displayName: 'Install'
  81. - script: |
  82. node ./scripts/_ci/github-comment.js "RELEASE_DAY" "[Using day release @delon, Preview Preparing...](https://dev.azure.com/ng-alain/ng-alain/_build/results?buildId=$(Build.BuildId))"
  83. displayName: 'Comment on github'
  84. env:
  85. ACCESS_REPO: $(ACCESS_REPO)
  86. ACCESS_TOKEN: $(ACCESS_TOKEN)
  87. - task: Bash@3
  88. displayName: 'Build'
  89. inputs:
  90. targetType: 'filePath'
  91. filePath: './scripts/_ci/deploy-pipelines.sh'
  92. arguments: '-day'
  93. - script: ls -al dist/
  94. displayName: 'List build'
  95. - script: |
  96. export DEPLOY_DOMAIN=https://preview-${SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}-day-ng-alain.surge.sh
  97. echo "Deploy to $DEPLOY_DOMAIN"
  98. cp ./dist/index.html ./dist/404.html
  99. npx surge --project ./dist --domain $DEPLOY_DOMAIN
  100. displayName: 'Deploy Site'
  101. env:
  102. ACCESS_REPO: $(ACCESS_REPO)
  103. ACCESS_TOKEN: $(ACCESS_TOKEN)
  104. SURGE_LOGIN: $(SURGE_LOGIN)
  105. SURGE_TOKEN: $(SURGE_TOKEN)
  106. - script: |
  107. export DEPLOY_DOMAIN=https://preview-${SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}-day-ng-alain.surge.sh
  108. node ./scripts/_ci/github-comment.js "RELEASE_DAY" "[Using day release @delon, Preview is ready!]($DEPLOY_DOMAIN)"
  109. displayName: 'Update comment on github'
  110. env:
  111. ACCESS_REPO: $(ACCESS_REPO)
  112. ACCESS_TOKEN: $(ACCESS_TOKEN)
  113. - job: Build_Failed
  114. dependsOn: Build
  115. condition: failed()
  116. steps:
  117. - checkout: self
  118. displayName: 'Checkout'
  119. clean: true
  120. fetchDepth: 1
  121. - script: yarn install
  122. displayName: 'Install'
  123. - script: |
  124. node ./scripts/_ci/github-comment.js "RELEASE_DAY" "[Using day release @delon, Preview Failed](https://dev.azure.com/ng-alain/delon/_build/results?buildId=$(Build.BuildId))"
  125. displayName: 'Comment on github'
  126. env:
  127. ACCESS_REPO: $(ACCESS_REPO)
  128. ACCESS_TOKEN: $(ACCESS_TOKEN)
  129. - stage: lint
  130. dependsOn:
  131. - env
  132. jobs:
  133. - job: site
  134. steps:
  135. - script: yarn install
  136. displayName: 'Install'
  137. - script: |
  138. npx stylelint --version
  139. yarn run lint
  140. - stage: test
  141. dependsOn:
  142. - env
  143. jobs:
  144. - job: site
  145. steps:
  146. - script: yarn install
  147. displayName: 'Install'
  148. - script: npx ng test --no-progress --browsers=ChromeHeadlessCI --code-coverage --no-watch