wercker.yml 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. box: node:10
  2. services:
  3. - mongo:3.6
  4. test:
  5. steps:
  6. - script:
  7. name: set yarn cache-folder
  8. code: yarn config set cache-folder $WERCKER_CACHE_DIR/yarn
  9. - script:
  10. name: install dependencies
  11. code: |
  12. yarn
  13. - script:
  14. name: print dependencies
  15. code: |
  16. echo -n "node " && node -v
  17. echo -n "npm " && npm -v
  18. yarn list --depth=0
  19. - script:
  20. name: npm test
  21. code: |
  22. export MONGO_URI=mongodb://$MONGO_PORT_27017_TCP_ADDR/growi_test
  23. echo "export MONGO_URI=$MONGO_URI"
  24. npm test
  25. after-steps:
  26. - slack-notifier:
  27. url: $SLACK_WEBHOOK_URL
  28. channel: ci
  29. username: wercker
  30. notify_on: "failed"
  31. lint:
  32. steps:
  33. - script:
  34. name: set yarn cache-folder
  35. code: yarn config set cache-folder $WERCKER_CACHE_DIR/yarn
  36. - script:
  37. name: install dependencies
  38. code: |
  39. yarn
  40. - script:
  41. name: print dependencies
  42. code: |
  43. echo -n "node " && node -v
  44. echo -n "npm " && npm -v
  45. yarn list --depth=0
  46. - script:
  47. name: npm run lint
  48. code: |
  49. npm run lint
  50. after-steps:
  51. - slack-notifier:
  52. url: $SLACK_WEBHOOK_URL
  53. channel: ci
  54. username: wercker
  55. notify_on: "failed"
  56. build-prod:
  57. steps:
  58. - script:
  59. name: set yarn cache-folder
  60. code: yarn config set cache-folder $WERCKER_CACHE_DIR/yarn
  61. - script:
  62. name: install dependencies
  63. code: |
  64. yarn
  65. - script:
  66. name: install plugins
  67. code: |
  68. yarn add growi-plugin-lsx growi-plugin-pukiwiki-like-linker
  69. - script:
  70. name: print dependencies
  71. code: |
  72. echo -n "node " && node -v
  73. echo -n "npm " && npm -v
  74. yarn list --depth=0
  75. - script:
  76. name: npm run build:prod:analyze
  77. code: |
  78. npm run build:prod:analyze
  79. - script:
  80. name: npm run server:prod:ci
  81. code: |
  82. export MONGO_URI=mongodb://$MONGO_PORT_27017_TCP_ADDR/growi
  83. echo "export MONGO_URI=$MONGO_URI"
  84. npm run server:prod:ci
  85. after-steps:
  86. - script:
  87. name: copy report to artifacts
  88. code: |
  89. cp -r report $WERCKER_REPORT_ARTIFACTS_DIR
  90. - slack-notifier:
  91. url: $SLACK_WEBHOOK_URL
  92. channel: ci
  93. username: wercker
  94. notify_on: "failed"
  95. build-dev:
  96. steps:
  97. - script:
  98. name: set yarn cache-folder
  99. code: yarn config set cache-folder $WERCKER_CACHE_DIR/yarn
  100. - script:
  101. name: install dependencies
  102. code: |
  103. yarn
  104. - script:
  105. name: install plugins
  106. code: |
  107. yarn add growi-plugin-lsx growi-plugin-pukiwiki-like-linker
  108. - script:
  109. name: print dependencies
  110. code: |
  111. echo -n "node " && node -v
  112. echo -n "npm " && npm -v
  113. yarn list --depth=0
  114. - script:
  115. name: npm run build:dev
  116. code: |
  117. npm run build:dev
  118. after-steps:
  119. - slack-notifier:
  120. url: $SLACK_WEBHOOK_URL
  121. channel: ci
  122. username: wercker
  123. notify_on: "failed"
  124. release: # would be run on release branch
  125. steps:
  126. - install-packages:
  127. packages: jq
  128. - script:
  129. name: bump version
  130. code: |
  131. sh ./bin/wercker/init-git.sh
  132. # git reset
  133. git reset --hard
  134. # npm version to bump version
  135. npm version patch
  136. - script:
  137. name: get RELEASE_VERSION
  138. code: |
  139. export RELEASE_VERSION=`npm run version --silent`
  140. echo "export RELEASE_VERSION=$RELEASE_VERSION"
  141. - script:
  142. name: commit and push
  143. code: |
  144. TMP_RELEASE_BRANCH=tmp/release-$RELEASE_VERSION
  145. git checkout -B $TMP_RELEASE_BRANCH
  146. git push -u origin HEAD:$TMP_RELEASE_BRANCH
  147. export RELEASE_GIT_COMMIT=`git rev-parse HEAD`
  148. - github-create-release:
  149. token: $GITHUB_TOKEN
  150. tag: v$RELEASE_VERSION
  151. target-commitish: $RELEASE_GIT_COMMIT
  152. - script:
  153. name: remove temporary release branch
  154. code: |
  155. git push --delete origin $TMP_RELEASE_BRANCH
  156. - script:
  157. name: trigger growi-docker release pipeline
  158. code: GROWI_DOCKER_PIPELINE_ID=$GROWI_DOCKER_PIPELINE_ID_CDN sh ./bin/wercker/trigger-growi-docker.sh
  159. - script:
  160. name: trigger growi-docker release-nocdn pipeline
  161. code: GROWI_DOCKER_PIPELINE_ID=$GROWI_DOCKER_PIPELINE_ID_NOCDN sh ./bin/wercker/trigger-growi-docker.sh
  162. after-steps:
  163. - slack-notifier:
  164. url: $SLACK_WEBHOOK_URL
  165. channel: ci
  166. username: wercker
  167. notify_on: "failed"
  168. release-rc: # would be run on rc/* branches
  169. steps:
  170. - install-packages:
  171. packages: jq
  172. - script:
  173. name: get RELEASE_VERSION
  174. code: |
  175. export RELEASE_VERSION=`npm run version --silent`
  176. export RELEASE_GIT_COMMIT=$WERCKER_GIT_COMMIT
  177. echo "export RELEASE_VERSION=$RELEASE_VERSION"
  178. echo "export RELEASE_GIT_COMMIT=$RELEASE_GIT_COMMIT"
  179. - script:
  180. name: trigger growi-docker release-rc pipeline
  181. code: sh ./bin/wercker/trigger-growi-docker.sh
  182. after-steps:
  183. - slack-notifier:
  184. url: $SLACK_WEBHOOK_URL
  185. channel: ci
  186. username: wercker
  187. notify_on: "failed"