wercker.yml 4.3 KB

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