|
|
@@ -0,0 +1,187 @@
|
|
|
+box: node:12-slim
|
|
|
+
|
|
|
+services:
|
|
|
+ - mongo:3.6
|
|
|
+
|
|
|
+
|
|
|
+test:
|
|
|
+ steps:
|
|
|
+ - script:
|
|
|
+ name: set yarn cache-folder
|
|
|
+ code: yarn config set cache-folder $WERCKER_CACHE_DIR/yarn
|
|
|
+
|
|
|
+ - script:
|
|
|
+ name: install dependencies
|
|
|
+ code: |
|
|
|
+ yarn
|
|
|
+
|
|
|
+ - script:
|
|
|
+ name: install plugins
|
|
|
+ code: |
|
|
|
+ yarn add growi-plugin-lsx growi-plugin-pukiwiki-like-linker growi-plugin-attachment-refs
|
|
|
+ yarn add -D react-images react-motion
|
|
|
+
|
|
|
+ - script:
|
|
|
+ name: print dependencies
|
|
|
+ code: |
|
|
|
+ echo -n "node " && node -v
|
|
|
+ echo -n "npm " && npm -v
|
|
|
+ yarn list --depth=0
|
|
|
+
|
|
|
+ - script:
|
|
|
+ name: yarn lint
|
|
|
+ code: |
|
|
|
+ yarn lint
|
|
|
+
|
|
|
+ - script:
|
|
|
+ name: yarn test
|
|
|
+ code: |
|
|
|
+ export MONGO_URI=mongodb://$MONGO_PORT_27017_TCP_ADDR/growi_test
|
|
|
+ echo "export MONGO_URI=$MONGO_URI"
|
|
|
+ yarn test
|
|
|
+
|
|
|
+ after-steps:
|
|
|
+ - slack-notifier:
|
|
|
+ url: $SLACK_WEBHOOK_URL
|
|
|
+ channel: ci
|
|
|
+ username: wercker
|
|
|
+ notify_on: "failed"
|
|
|
+
|
|
|
+
|
|
|
+build-prod:
|
|
|
+ steps:
|
|
|
+ - script:
|
|
|
+ name: set yarn cache-folder
|
|
|
+ code: yarn config set cache-folder $WERCKER_CACHE_DIR/yarn
|
|
|
+
|
|
|
+ - script:
|
|
|
+ name: yarn build:prod:analyze
|
|
|
+ code: |
|
|
|
+ yarn build:prod:analyze
|
|
|
+
|
|
|
+ - script:
|
|
|
+ name: shrink dependencies for production
|
|
|
+ code: |
|
|
|
+ yarn install --production
|
|
|
+
|
|
|
+ - script:
|
|
|
+ name: yarn server:prod:ci
|
|
|
+ code: |
|
|
|
+ export MONGO_URI=mongodb://$MONGO_PORT_27017_TCP_ADDR/growi
|
|
|
+ echo "export MONGO_URI=$MONGO_URI"
|
|
|
+ yarn server:prod:ci
|
|
|
+
|
|
|
+ after-steps:
|
|
|
+ - script:
|
|
|
+ name: copy report to artifacts
|
|
|
+ code: |
|
|
|
+ cp -r report $WERCKER_REPORT_ARTIFACTS_DIR
|
|
|
+
|
|
|
+ - slack-notifier:
|
|
|
+ url: $SLACK_WEBHOOK_URL
|
|
|
+ channel: ci
|
|
|
+ username: wercker
|
|
|
+ notify_on: "failed"
|
|
|
+
|
|
|
+
|
|
|
+build-dev:
|
|
|
+ steps:
|
|
|
+ - script:
|
|
|
+ name: set yarn cache-folder
|
|
|
+ code: yarn config set cache-folder $WERCKER_CACHE_DIR/yarn
|
|
|
+
|
|
|
+ - script:
|
|
|
+ name: yarn build:dev
|
|
|
+ code: |
|
|
|
+ yarn build:dev
|
|
|
+
|
|
|
+ after-steps:
|
|
|
+ - slack-notifier:
|
|
|
+ url: $SLACK_WEBHOOK_URL
|
|
|
+ channel: ci
|
|
|
+ username: wercker
|
|
|
+ notify_on: "failed"
|
|
|
+
|
|
|
+
|
|
|
+release: # would be run on release branch
|
|
|
+ steps:
|
|
|
+ - install-packages:
|
|
|
+ packages: jq
|
|
|
+
|
|
|
+ - script:
|
|
|
+ name: bump version
|
|
|
+ code: |
|
|
|
+ sh ./bin/wercker/init-git.sh
|
|
|
+ # git reset
|
|
|
+ git reset --hard
|
|
|
+ # npm version to bump version
|
|
|
+ npm version patch
|
|
|
+
|
|
|
+ - script:
|
|
|
+ name: get RELEASE_VERSION
|
|
|
+ code: |
|
|
|
+ export RELEASE_VERSION=`npm run version --silent`
|
|
|
+ echo "export RELEASE_VERSION=$RELEASE_VERSION"
|
|
|
+
|
|
|
+ - script:
|
|
|
+ name: commit and push
|
|
|
+ code: |
|
|
|
+ TMP_RELEASE_BRANCH=tmp/release-$RELEASE_VERSION
|
|
|
+ git checkout -B $TMP_RELEASE_BRANCH
|
|
|
+ git push -u origin HEAD:$TMP_RELEASE_BRANCH
|
|
|
+ export RELEASE_GIT_COMMIT=`git rev-parse HEAD`
|
|
|
+
|
|
|
+ - github-create-release:
|
|
|
+ token: $GITHUB_TOKEN
|
|
|
+ tag: v$RELEASE_VERSION
|
|
|
+ target-commitish: $RELEASE_GIT_COMMIT
|
|
|
+
|
|
|
+ - script:
|
|
|
+ name: remove temporary release branch
|
|
|
+ code: |
|
|
|
+ git push --delete origin $TMP_RELEASE_BRANCH
|
|
|
+
|
|
|
+ - script:
|
|
|
+ name: trigger growi-docker release pipeline
|
|
|
+ code: GROWI_DOCKER_PIPELINE_ID=$GROWI_DOCKER_PIPELINE_ID_CDN sh ./bin/wercker/trigger-growi-docker.sh
|
|
|
+
|
|
|
+ - script:
|
|
|
+ name: trigger growi-docker release-nocdn pipeline
|
|
|
+ code: GROWI_DOCKER_PIPELINE_ID=$GROWI_DOCKER_PIPELINE_ID_NOCDN sh ./bin/wercker/trigger-growi-docker.sh
|
|
|
+
|
|
|
+ - script:
|
|
|
+ name: trigger growi-docs deploy pipeline
|
|
|
+ code: sh ./bin/wercker/trigger-growi-docs.sh
|
|
|
+
|
|
|
+ after-steps:
|
|
|
+ - slack-notifier:
|
|
|
+ url: $SLACK_WEBHOOK_URL
|
|
|
+ channel: ci
|
|
|
+ username: wercker
|
|
|
+ notify_on: "failed"
|
|
|
+
|
|
|
+
|
|
|
+release-rc: # would be run on rc/* branches
|
|
|
+ steps:
|
|
|
+ - install-packages:
|
|
|
+ packages: jq
|
|
|
+
|
|
|
+ - script:
|
|
|
+ name: get RELEASE_VERSION
|
|
|
+ code: |
|
|
|
+ export RELEASE_VERSION=`npm run version --silent`
|
|
|
+ export RELEASE_GIT_COMMIT=$WERCKER_GIT_COMMIT
|
|
|
+ echo "export RELEASE_VERSION=$RELEASE_VERSION"
|
|
|
+ echo "export RELEASE_GIT_COMMIT=$RELEASE_GIT_COMMIT"
|
|
|
+
|
|
|
+ - script:
|
|
|
+ name: trigger growi-docker release-rc pipeline
|
|
|
+ code: sh ./bin/wercker/trigger-growi-docker.sh
|
|
|
+
|
|
|
+ after-steps:
|
|
|
+ - slack-notifier:
|
|
|
+ url: $SLACK_WEBHOOK_URL
|
|
|
+ channel: ci
|
|
|
+ username: wercker
|
|
|
+ notify_on: "failed"
|
|
|
+
|