wercker.yml 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. box: node:8
  2. services:
  3. - mongo:3.4
  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: yarn list --depth=0
  16. - script:
  17. name: npm test
  18. code: |
  19. export MONGO_URI=mongodb://$MONGO_PORT_27017_TCP_ADDR/growi_test
  20. echo "export MONGO_URI=$MONGO_URI"
  21. npm test
  22. after-steps:
  23. - slack-notifier:
  24. url: $SLACK_WEBHOOK_URL
  25. channel: ci
  26. username: wercker
  27. notify_on: "failed"
  28. build-prod:
  29. steps:
  30. - script:
  31. name: set yarn cache-folder
  32. code: yarn config set cache-folder $WERCKER_CACHE_DIR/yarn
  33. - script:
  34. name: install dependencies
  35. code: |
  36. yarn
  37. - script:
  38. name: install plugins
  39. code: |
  40. yarn add growi-plugin-lsx growi-plugin-pukiwiki-like-linker
  41. - script:
  42. name: print dependencies
  43. code: yarn list --depth=0
  44. - script:
  45. name: npm run build:prod:analyze
  46. code: |
  47. npm run build:prod:analyze
  48. - script:
  49. name: npm run server:prod:ci
  50. code: |
  51. export MONGO_URI=mongodb://$MONGO_PORT_27017_TCP_ADDR/growi
  52. echo "export MONGO_URI=$MONGO_URI"
  53. npm run server:prod:ci
  54. after-steps:
  55. - script:
  56. name: copy report to artifacts
  57. code: |
  58. cp -r report $WERCKER_REPORT_ARTIFACTS_DIR
  59. - slack-notifier:
  60. url: $SLACK_WEBHOOK_URL
  61. channel: ci
  62. username: wercker
  63. notify_on: "failed"
  64. build-dev:
  65. steps:
  66. - script:
  67. name: set yarn cache-folder
  68. code: yarn config set cache-folder $WERCKER_CACHE_DIR/yarn
  69. - script:
  70. name: install dependencies
  71. code: |
  72. yarn
  73. - script:
  74. name: install plugins
  75. code: |
  76. yarn add growi-plugin-lsx growi-plugin-pukiwiki-like-linker
  77. - script:
  78. name: print dependencies
  79. code: yarn list --depth=0
  80. - script:
  81. name: npm run build:dev
  82. code: |
  83. npm run build:dev
  84. after-steps:
  85. - slack-notifier:
  86. url: $SLACK_WEBHOOK_URL
  87. channel: ci
  88. username: wercker
  89. notify_on: "failed"
  90. release: # would be run on release branch
  91. steps:
  92. - install-packages:
  93. packages: jq
  94. - script:
  95. name: bump version
  96. code: |
  97. sh ./bin/wercker/init-git.sh
  98. # git reset
  99. git reset --hard
  100. # npm version to bump version
  101. npm version patch
  102. # get version
  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. TARGET_COMMITISH=`git rev-parse HEAD`
  112. - github-create-release:
  113. token: $GITHUB_TOKEN
  114. tag: v$RELEASE_VERSION
  115. target-commitish: $TARGET_COMMITISH
  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: sh ./bin/wercker/trigger-growi-docker.sh
  123. after-steps:
  124. - slack-notifier:
  125. url: $SLACK_WEBHOOK_URL
  126. channel: ci
  127. username: wercker
  128. notify_on: "failed"