wercker.yml 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  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: install plugins
  15. code: |
  16. yarn add growi-plugin-lsx growi-plugin-pukiwiki-like-linker growi-plugin-attachment-refs
  17. yarn add -D react-images react-motion
  18. - script:
  19. name: print dependencies
  20. code: |
  21. echo -n "node " && node -v
  22. echo -n "npm " && npm -v
  23. yarn list --depth=0
  24. - script:
  25. name: npm run lint
  26. code: |
  27. npm run lint
  28. - script:
  29. name: npm test
  30. code: |
  31. export MONGO_URI=mongodb://$MONGO_PORT_27017_TCP_ADDR/growi_test
  32. echo "export MONGO_URI=$MONGO_URI"
  33. npm test
  34. after-steps:
  35. - slack-notifier:
  36. url: $SLACK_WEBHOOK_URL
  37. channel: ci
  38. username: wercker
  39. notify_on: "failed"
  40. build-prod:
  41. steps:
  42. - script:
  43. name: set yarn cache-folder
  44. code: yarn config set cache-folder $WERCKER_CACHE_DIR/yarn
  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: npm run build:dev
  76. code: |
  77. npm run build:dev
  78. after-steps:
  79. - slack-notifier:
  80. url: $SLACK_WEBHOOK_URL
  81. channel: ci
  82. username: wercker
  83. notify_on: "failed"
  84. release: # would be run on release branch
  85. steps:
  86. - install-packages:
  87. packages: jq
  88. - script:
  89. name: bump version
  90. code: |
  91. sh ./bin/wercker/init-git.sh
  92. # git reset
  93. git reset --hard
  94. # npm version to bump version
  95. npm version patch
  96. - script:
  97. name: get RELEASE_VERSION
  98. code: |
  99. export RELEASE_VERSION=`npm run version --silent`
  100. echo "export RELEASE_VERSION=$RELEASE_VERSION"
  101. - script:
  102. name: commit and push
  103. code: |
  104. TMP_RELEASE_BRANCH=tmp/release-$RELEASE_VERSION
  105. git checkout -B $TMP_RELEASE_BRANCH
  106. git push -u origin HEAD:$TMP_RELEASE_BRANCH
  107. export RELEASE_GIT_COMMIT=`git rev-parse HEAD`
  108. - github-create-release:
  109. token: $GITHUB_TOKEN
  110. tag: v$RELEASE_VERSION
  111. target-commitish: $RELEASE_GIT_COMMIT
  112. - script:
  113. name: remove temporary release branch
  114. code: |
  115. git push --delete origin $TMP_RELEASE_BRANCH
  116. - script:
  117. name: trigger growi-docker release pipeline
  118. code: GROWI_DOCKER_PIPELINE_ID=$GROWI_DOCKER_PIPELINE_ID_CDN sh ./bin/wercker/trigger-growi-docker.sh
  119. - script:
  120. name: trigger growi-docker release-nocdn pipeline
  121. code: GROWI_DOCKER_PIPELINE_ID=$GROWI_DOCKER_PIPELINE_ID_NOCDN sh ./bin/wercker/trigger-growi-docker.sh
  122. - script:
  123. name: trigger growi-docs deploy pipeline
  124. code: sh ./bin/wercker/trigger-growi-docs.sh
  125. after-steps:
  126. - slack-notifier:
  127. url: $SLACK_WEBHOOK_URL
  128. channel: ci
  129. username: wercker
  130. notify_on: "failed"
  131. release-rc: # would be run on rc/* branches
  132. steps:
  133. - install-packages:
  134. packages: jq
  135. - script:
  136. name: get RELEASE_VERSION
  137. code: |
  138. export RELEASE_VERSION=`npm run version --silent`
  139. export RELEASE_GIT_COMMIT=$WERCKER_GIT_COMMIT
  140. echo "export RELEASE_VERSION=$RELEASE_VERSION"
  141. echo "export RELEASE_GIT_COMMIT=$RELEASE_GIT_COMMIT"
  142. - script:
  143. name: trigger growi-docker release-rc pipeline
  144. code: sh ./bin/wercker/trigger-growi-docker.sh
  145. after-steps:
  146. - slack-notifier:
  147. url: $SLACK_WEBHOOK_URL
  148. channel: ci
  149. username: wercker
  150. notify_on: "failed"