wercker.yml 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  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. build-prod:
  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: install plugins
  42. code: |
  43. yarn add growi-plugin-lsx growi-plugin-pukiwiki-like-linker
  44. - script:
  45. name: print dependencies
  46. code: |
  47. echo -n "node " && node -v
  48. echo -n "npm " && npm -v
  49. yarn list --depth=0
  50. - script:
  51. name: npm run build:prod:analyze
  52. code: |
  53. npm run build:prod:analyze
  54. - script:
  55. name: npm run server:prod:ci
  56. code: |
  57. export MONGO_URI=mongodb://$MONGO_PORT_27017_TCP_ADDR/growi
  58. echo "export MONGO_URI=$MONGO_URI"
  59. npm run server:prod:ci
  60. after-steps:
  61. - script:
  62. name: copy report to artifacts
  63. code: |
  64. cp -r report $WERCKER_REPORT_ARTIFACTS_DIR
  65. - slack-notifier:
  66. url: $SLACK_WEBHOOK_URL
  67. channel: ci
  68. username: wercker
  69. notify_on: "failed"
  70. build-dev:
  71. steps:
  72. - script:
  73. name: set yarn cache-folder
  74. code: yarn config set cache-folder $WERCKER_CACHE_DIR/yarn
  75. - script:
  76. name: install dependencies
  77. code: |
  78. yarn
  79. - script:
  80. name: install plugins
  81. code: |
  82. yarn add growi-plugin-lsx growi-plugin-pukiwiki-like-linker
  83. - script:
  84. name: print dependencies
  85. code: |
  86. echo -n "node " && node -v
  87. echo -n "npm " && npm -v
  88. yarn list --depth=0
  89. - script:
  90. name: npm run build:dev
  91. code: |
  92. npm run build:dev
  93. after-steps:
  94. - slack-notifier:
  95. url: $SLACK_WEBHOOK_URL
  96. channel: ci
  97. username: wercker
  98. notify_on: "failed"
  99. release: # would be run on release branch
  100. steps:
  101. - install-packages:
  102. packages: jq
  103. - script:
  104. name: bump version
  105. code: |
  106. sh ./bin/wercker/init-git.sh
  107. # git reset
  108. git reset --hard
  109. # npm version to bump version
  110. npm version patch
  111. - script:
  112. name: get RELEASE_VERSION
  113. code: |
  114. export RELEASE_VERSION=`npm run version --silent`
  115. echo "export RELEASE_VERSION=$RELEASE_VERSION"
  116. - script:
  117. name: commit and push
  118. code: |
  119. TMP_RELEASE_BRANCH=tmp/release-$RELEASE_VERSION
  120. git checkout -B $TMP_RELEASE_BRANCH
  121. git push -u origin HEAD:$TMP_RELEASE_BRANCH
  122. export RELEASE_GIT_COMMIT=`git rev-parse HEAD`
  123. - github-create-release:
  124. token: $GITHUB_TOKEN
  125. tag: v$RELEASE_VERSION
  126. target-commitish: $RELEASE_GIT_COMMIT
  127. - script:
  128. name: remove temporary release branch
  129. code: |
  130. git push --delete origin $TMP_RELEASE_BRANCH
  131. - script:
  132. name: trigger growi-docker release pipeline
  133. code: GROWI_DOCKER_PIPELINE_ID=$GROWI_DOCKER_PIPELINE_ID_CDN sh ./bin/wercker/trigger-growi-docker.sh
  134. - script:
  135. name: trigger growi-docker release-nocdn pipeline
  136. code: GROWI_DOCKER_PIPELINE_ID=$GROWI_DOCKER_PIPELINE_ID_NOCDN sh ./bin/wercker/trigger-growi-docker.sh
  137. after-steps:
  138. - slack-notifier:
  139. url: $SLACK_WEBHOOK_URL
  140. channel: ci
  141. username: wercker
  142. notify_on: "failed"
  143. release-rc: # would be run on rc/* branches
  144. steps:
  145. - install-packages:
  146. packages: jq
  147. - script:
  148. name: get RELEASE_VERSION
  149. code: |
  150. export RELEASE_VERSION=`npm run version --silent`
  151. export RELEASE_GIT_COMMIT=$WERCKER_GIT_COMMIT
  152. echo "export RELEASE_VERSION=$RELEASE_VERSION"
  153. echo "export RELEASE_GIT_COMMIT=$RELEASE_GIT_COMMIT"
  154. - script:
  155. name: trigger growi-docker release-rc pipeline
  156. code: sh ./bin/wercker/trigger-growi-docker.sh
  157. after-steps:
  158. - slack-notifier:
  159. url: $SLACK_WEBHOOK_URL
  160. channel: ci
  161. username: wercker
  162. notify_on: "failed"