From eac8f68be7fc4c9dfd4a8c122b33874415295260 Mon Sep 17 00:00:00 2001 From: Chris Pitman Date: Thu, 5 Oct 2017 12:58:31 -0400 Subject: [PATCH 1/9] Store int history as string in mongo Http Results can include keps which are vaild JSON but invalid mongo keys. Store them as a string, then check when formatting them for dispkay if they are json that needs to be stringifies or already a string. --- .../client/views/integrationsOutgoingHistory.html | 2 +- .../client/views/integrationsOutgoingHistory.js | 12 ++++-------- .../server/lib/triggerHandler.js | 2 +- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/packages/rocketchat-integrations/client/views/integrationsOutgoingHistory.html b/packages/rocketchat-integrations/client/views/integrationsOutgoingHistory.html index eb57c122e3ada..e58d746a2d088 100644 --- a/packages/rocketchat-integrations/client/views/integrationsOutgoingHistory.html +++ b/packages/rocketchat-integrations/client/views/integrationsOutgoingHistory.html @@ -121,7 +121,7 @@

-
{{{ hljsStack history.errorStack }}}
+
{{{ jsonStringify history.errorStack }}}
{{/if}} diff --git a/packages/rocketchat-integrations/client/views/integrationsOutgoingHistory.js b/packages/rocketchat-integrations/client/views/integrationsOutgoingHistory.js index 383b5d1ba9bd0..9a110dffd58f3 100644 --- a/packages/rocketchat-integrations/client/views/integrationsOutgoingHistory.js +++ b/packages/rocketchat-integrations/client/views/integrationsOutgoingHistory.js @@ -94,16 +94,12 @@ Template.integrationsOutgoingHistory.helpers({ }, jsonStringify(data) { - return data ? hljs.highlight('json', JSON.stringify(data, null, 2)).value : ''; - }, - - hljsStack(errorStack) { - if (!errorStack) { + if (!data) { return ''; - } else if (typeof errorStack === 'object') { - return hljs.highlight('json', JSON.stringify(errorStack, null, 2)).value; + } else if (typeof data === 'object') { + return hljs.highlight('json', JSON.stringify(data, null, 2)).value; } else { - return hljs.highlight('json', errorStack).value; + return hljs.highlight('json', data).value; } }, diff --git a/packages/rocketchat-integrations/server/lib/triggerHandler.js b/packages/rocketchat-integrations/server/lib/triggerHandler.js index 5012c42e6436c..000a1d5af8548 100644 --- a/packages/rocketchat-integrations/server/lib/triggerHandler.js +++ b/packages/rocketchat-integrations/server/lib/triggerHandler.js @@ -130,7 +130,7 @@ RocketChat.integrations.triggerHandler = new class RocketChatIntegrationHandler } if (typeof httpResult !== 'undefined') { - history.httpResult = httpResult; + history.httpResult = JSON.stringify(httpResult, null, 2); } if (typeof error !== 'undefined') { From aabc541927df2ded07465344c7421e6be3998b8f Mon Sep 17 00:00:00 2001 From: Karl Prieb Date: Tue, 28 Nov 2017 21:03:10 -0200 Subject: [PATCH 2/9] [FIX] Channel settings buttons (#8753) * Fix channel settings buttons * fix member view on flex-tab * try to fix test * add scroll to add users flex-tab --- .../client/stylesheets/channel-settings.css | 1 - .../rocketchat-livechat/app/package-lock.json | 7 +++++++ .../client/imports/general/base_old.css | 20 +++++++------------ packages/rocketchat-theme/server/colors.less | 4 ---- tests/pageobjects/flex-tab.page.js | 6 +++--- 5 files changed, 17 insertions(+), 21 deletions(-) diff --git a/packages/rocketchat-channel-settings/client/stylesheets/channel-settings.css b/packages/rocketchat-channel-settings/client/stylesheets/channel-settings.css index 3c353185e19e7..612da29d654f5 100644 --- a/packages/rocketchat-channel-settings/client/stylesheets/channel-settings.css +++ b/packages/rocketchat-channel-settings/client/stylesheets/channel-settings.css @@ -50,7 +50,6 @@ html.rtl .flex-tab { } & .editing { - margin: -2px 0 -1px -9px; padding-right: 80px; font-size: 14px; } diff --git a/packages/rocketchat-livechat/app/package-lock.json b/packages/rocketchat-livechat/app/package-lock.json index c760d61a3560e..d5cb0fc15cbb8 100644 --- a/packages/rocketchat-livechat/app/package-lock.json +++ b/packages/rocketchat-livechat/app/package-lock.json @@ -649,6 +649,13 @@ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" } }, + "string_decoder": { + "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=", + "requires": { + "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz" + } + }, "stringstream": { "version": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" diff --git a/packages/rocketchat-theme/client/imports/general/base_old.css b/packages/rocketchat-theme/client/imports/general/base_old.css index 59c9a35863c5f..824861da12665 100644 --- a/packages/rocketchat-theme/client/imports/general/base_old.css +++ b/packages/rocketchat-theme/client/imports/general/base_old.css @@ -3429,7 +3429,6 @@ body:not(.is-cordova) { overflow-x: visible; width: var(--flex-tab-width); - height: calc(100vh - 61px); & .control { & .header { @@ -3516,23 +3515,14 @@ body:not(.is-cordova) { } & .content { - position: absolute; - top: auto; - left: 0; - - overflow-x: hidden; - overflow-y: auto; - - width: 100%; - height: 100%; - -webkit-overflow-scrolling: touch; - & > div { + overflow-y: auto; + transition: transform 0.45s cubic-bezier(0.5, 0, 0, 1), opacity 0.125s ease-out 0.1s; } & > .animated-hidden { - transform: translateX(100%); + transform: translateX(calc(100% + 40px)); opacity: 0; } @@ -3568,6 +3558,10 @@ body:not(.is-cordova) { } } + & .channel-settings .button { + visibility: initial; + } + & footer { position: absolute; z-index: 100; diff --git a/packages/rocketchat-theme/server/colors.less b/packages/rocketchat-theme/server/colors.less index 627cea3d8e3f5..631d1d143331c 100755 --- a/packages/rocketchat-theme/server/colors.less +++ b/packages/rocketchat-theme/server/colors.less @@ -714,10 +714,6 @@ input:-webkit-autofill { } } - .button { - .buttonColors(lighten(@primary-font-color, 25%), @secondary-background-color); - } - .input.checkbox.toggle { input:checked + label::before { background-color: @primary-background-color; diff --git a/tests/pageobjects/flex-tab.page.js b/tests/pageobjects/flex-tab.page.js index 383b45dc068ca..0c0104148a12d 100644 --- a/tests/pageobjects/flex-tab.page.js +++ b/tests/pageobjects/flex-tab.page.js @@ -79,9 +79,9 @@ class FlexTab extends Page { get usersSendInvitationTab() { return browser.element('.tab-button:not(.hidden) .tab-button-icon--send'); } get usersAddUserTab() { return browser.element('.tab-button:not(.hidden) .tab-button-icon--plus'); } get usersSendInvitationTextArea() { return browser.element('#inviteEmails'); } - get usersButtonCancel() { return browser.element('button.cancel'); } - get usersSendInvitationSend() { return browser.element('button.send'); } - get usersButtonSave() { return browser.element('button.save'); } + get usersButtonCancel() { return browser.element('.button.cancel'); } + get usersSendInvitationSend() { return browser.element('.button.send'); } + get usersButtonSave() { return browser.element('.button.save'); } get usersAddUserName() { return browser.element('#name'); } get usersAddUserUsername() { return browser.element('#username'); } get usersAddUserEmail() { return browser.element('#email'); } From 812bb639e8ba30cf3ac51b840ac0eb009836ba8f Mon Sep 17 00:00:00 2001 From: Aaron Ogle Date: Tue, 28 Nov 2017 17:28:57 -0600 Subject: [PATCH 3/9] Bump version to 0.59.4 --- .docker/Dockerfile | 2 +- .sandstorm/sandstorm-pkgdef.capnp | 2 +- .travis/snap.sh | 2 +- HISTORY.md | 5 +++++ package.json | 2 +- packages/rocketchat-lib/rocketchat.info | 2 +- 6 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.docker/Dockerfile b/.docker/Dockerfile index 1e3ae0e864d7d..1f0b11da59782 100644 --- a/.docker/Dockerfile +++ b/.docker/Dockerfile @@ -1,6 +1,6 @@ FROM rocketchat/base:4 -ENV RC_VERSION 0.59.3 +ENV RC_VERSION 0.59.4 MAINTAINER buildmaster@rocket.chat diff --git a/.sandstorm/sandstorm-pkgdef.capnp b/.sandstorm/sandstorm-pkgdef.capnp index 65091cf26affe..d8c29b1595184 100644 --- a/.sandstorm/sandstorm-pkgdef.capnp +++ b/.sandstorm/sandstorm-pkgdef.capnp @@ -21,7 +21,7 @@ const pkgdef :Spk.PackageDefinition = ( appVersion = 62, # Increment this for every release. - appMarketingVersion = (defaultText = "0.59.3"), + appMarketingVersion = (defaultText = "0.59.4"), # Human-readable representation of appVersion. Should match the way you # identify versions of your app in documentation and marketing. diff --git a/.travis/snap.sh b/.travis/snap.sh index 18f64517bd06c..b2ef7f1eccfe0 100755 --- a/.travis/snap.sh +++ b/.travis/snap.sh @@ -17,7 +17,7 @@ elif [[ $TRAVIS_TAG ]]; then RC_VERSION=$TRAVIS_TAG else CHANNEL=edge - RC_VERSION=0.59.3 + RC_VERSION=0.59.4 fi echo "Preparing to trigger a snap release for $CHANNEL channel" diff --git a/HISTORY.md b/HISTORY.md index dbdf81d327757..c869dcfd075cd 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,3 +1,8 @@ + +## 0.59.4 (2017-11-28) + + + ## 0.59.3 (2017-10-29) diff --git a/package.json b/package.json index a24bd267011a6..fabeb0d0369f1 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "Rocket.Chat", "description": "The Ultimate Open Source WebChat Platform", - "version": "0.59.3", + "version": "0.59.4", "author": { "name": "Rocket.Chat", "url": "https://rocket.chat/" diff --git a/packages/rocketchat-lib/rocketchat.info b/packages/rocketchat-lib/rocketchat.info index ebaf46b0c2351..c767cf7cf3cc8 100644 --- a/packages/rocketchat-lib/rocketchat.info +++ b/packages/rocketchat-lib/rocketchat.info @@ -1,3 +1,3 @@ { - "version": "0.59.3" + "version": "0.59.4" } From 67ce5838e15eb843fcd20264e9396667b16cbd75 Mon Sep 17 00:00:00 2001 From: Aaron Ogle Date: Tue, 28 Nov 2017 17:33:03 -0600 Subject: [PATCH 4/9] Fix history --- HISTORY.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/HISTORY.md b/HISTORY.md index c869dcfd075cd..7a361a4d93c16 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,6 +1,11 @@ ## 0.59.4 (2017-11-28) +### Bug Fixes + +- [#8413](https://github.com/RocketChat/Rocket.Chat/pull/8413) Store Outgoing Integration Result as String in Mongo +- [#8753](https://github.com/RocketChat/Rocket.Chat/pull/8753) Fix Channel settings buttons + From d1e8503e51efa9682bae0c4595629585b8ee1ee8 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Fri, 3 Nov 2017 20:03:17 -0200 Subject: [PATCH 5/9] Add CircleCI (#8685) --- .circleci/config.yml | 289 +++++++++++++++++++++++ .circleci/docker.sh | 13 + .circleci/namefiles.sh | 8 + .circleci/setartname.sh | 23 ++ .circleci/setdeploydir.sh | 2 + .circleci/setupsig.sh | 8 + .circleci/sign.key.gpg | Bin 0 -> 5117 bytes .circleci/snap.sh | 37 +++ .circleci/update-releases.sh | 17 ++ .scripts/set-version.js | 2 + .scripts/start.js | 2 +- tests/chimp-config.js | 2 +- tests/pageobjects/administration.page.js | 6 +- 13 files changed, 406 insertions(+), 3 deletions(-) create mode 100644 .circleci/config.yml create mode 100644 .circleci/docker.sh create mode 100644 .circleci/namefiles.sh create mode 100644 .circleci/setartname.sh create mode 100644 .circleci/setdeploydir.sh create mode 100644 .circleci/setupsig.sh create mode 100644 .circleci/sign.key.gpg create mode 100644 .circleci/snap.sh create mode 100644 .circleci/update-releases.sh diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000000000..9fb2a7f6017e3 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,289 @@ +defaults: &defaults + working_directory: ~/repo + +version: 2 +jobs: + build: + <<: *defaults + docker: + - image: circleci/node:4.8 + + steps: + - checkout + + - restore_cache: + keys: + - node-modules-cache-{{ checksum ".circleci/config.yml" }}-{{ checksum "package.json" }} + + - restore_cache: + keys: + - meteor-{{ checksum ".circleci/config.yml" }}-{{ checksum ".meteor/release" }} + + - run: + name: Install Meteor + command: | + # Restore bin from cache + set +e + METEOR_SYMLINK_TARGET=$(readlink ~/.meteor/meteor) + METEOR_TOOL_DIRECTORY=$(dirname "$METEOR_SYMLINK_TARGET") + set -e + LAUNCHER=$HOME/.meteor/$METEOR_TOOL_DIRECTORY/scripts/admin/launch-meteor + if [ -e $LAUNCHER ] + then + echo "Cached Meteor bin found, restoring it" + sudo cp "$LAUNCHER" "/usr/local/bin/meteor" + else + echo "No cached Meteor bin found." + fi + + # only install meteor if bin isn't found + command -v meteor >/dev/null 2>&1 || curl https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh + + - run: + name: Versions + command: | + npm --versions + node -v + meteor --version + meteor npm --versions + meteor node -v + git version + + - run: + name: Meteor npm install + command: | + # rm -rf node_modules + # rm -f package-lock.json + meteor npm install + + - run: + name: Lint + command: | + meteor npm run lint + meteor npm run stylelint + + - run: + name: Unit Test + command: | + meteor npm run testunit + + - restore_cache: + keys: + - meteor-cache-{{ checksum ".circleci/config.yml" }}-{{ checksum ".meteor/versions" }} + + - restore_cache: + keys: + - livechat-meteor-cache-{{ checksum ".circleci/config.yml" }}-{{ checksum "packages/rocketchat-livechat/app/.meteor/versions" }} + + - restore_cache: + keys: + - livechat-node-modules-cache-{{ checksum ".circleci/config.yml" }}-{{ checksum "packages/rocketchat-livechat/app/package.json" }} + + - run: + name: Build Rocket.Chat + command: | + if [[ $CIRCLE_TAG ]]; then meteor reset; fi + set +e + meteor add rocketchat:lib + set -e + meteor build --server-only --directory /tmp/build-test + + - run: + name: Prepare build + command: | + mkdir /tmp/build/ + cd /tmp/build-test + tar czf /tmp/build/Rocket.Chat.tar.gz bundle + cd /tmp/build-test/bundle/programs/server + npm install + + - save_cache: + key: node-modules-cache-{{ checksum ".circleci/config.yml" }}-{{ checksum "package.json" }} + paths: + - ./node_modules + + - save_cache: + key: meteor-cache-{{ checksum ".circleci/config.yml" }}-{{ checksum ".meteor/versions" }} + paths: + - ./.meteor/local + + - save_cache: + key: livechat-node-modules-cache-{{ checksum ".circleci/config.yml" }}-{{ checksum "packages/rocketchat-livechat/app/package.json" }} + paths: + - ./packages/rocketchat-livechat/app/node_modules + + - save_cache: + key: livechat-meteor-cache-{{ checksum ".circleci/config.yml" }}-{{ checksum "packages/rocketchat-livechat/app/.meteor/versions" }} + paths: + - ./packages/rocketchat-livechat/app/.meteor/local + + - save_cache: + key: meteor-{{ checksum ".circleci/config.yml" }}-{{ checksum ".meteor/release" }} + paths: + - ~/.meteor + + - persist_to_workspace: + root: /tmp/ + paths: + - build-test + - build + + - store_artifacts: + path: /tmp/build + + test-with-oplog: + <<: *defaults + docker: + - image: circleci/node:4.8-browsers + - image: mongo:3.4 + command: [mongod, --nojournal, --noprealloc, --smallfiles, --replSet=rs0] + + environment: + TEST_MODE: "true" + MONGO_URL: mongodb://localhost:27017/testwithoplog + MONGO_OPLOG_URL: mongodb://localhost:27017/local + + steps: + - attach_workspace: + at: /tmp + + - checkout + + - run: + name: Install dependencies + command: | + sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6 + echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list + sudo apt-get update + sudo apt-get install -y mongodb-org-shell + + - run: + name: Configure Replica Set + command: | + mongo --eval 'rs.initiate({_id:"rs0", members: [{"_id":1, "host":"localhost:27017"}]})' + mongo --eval 'rs.status()' + + - run: + name: Update NPM + command: | + sudo npm install -g npm + + - run: + name: NPM install + command: | + npm install + + - run: + name: Run Tests + command: | + for i in $(seq 1 5); do npm test && s=0 && break || s=$? && sleep 1; done; (exit $s) + + - store_artifacts: + path: ~/repo/.screenshots + + test-without-oplog: + <<: *defaults + docker: + - image: circleci/node:4.8-browsers + - image: circleci/mongo:3.4 + + environment: + TEST_MODE: "true" + MONGO_URL: mongodb://localhost:27017/testwithoplog + + steps: + - attach_workspace: + at: /tmp + + - checkout + + - run: + name: Update NPM + command: | + sudo npm install -g npm + + - run: + name: NPM install + command: | + npm install + + - run: + name: Run Tests + command: | + for i in $(seq 1 5); do npm test && s=0 && break || s=$? && sleep 1; done; (exit $s) + + # - run: + # name: Build Failed + # when: on_fail + # command: | + # cp -R .screenshots /tmp/screenshots + + # - store_artifacts: + # path: ~/repo/.screenshots + + deploy: + <<: *defaults + docker: + - image: circleci/node:4.8 + + steps: + - attach_workspace: + at: /tmp + + - checkout + + - run: + name: Install AWS cli + command: | + if [[ $CIRCLE_PULL_REQUESTS ]]; then exit 0; fi; + + sudo apt-get -y -qq update + sudo apt-get -y -qq install python3.4-dev + curl -O https://bootstrap.pypa.io/get-pip.py + python3.4 get-pip.py --user + export PATH=~/.local/bin:$PATH + pip install awscli --upgrade --user + + - run: + name: Publish assets + command: | + if [[ $CIRCLE_PULL_REQUESTS ]]; then exit 0; fi; + + export PATH=~/.local/bin:$PATH + export CIRCLE_TAG=${CIRCLE_TAG:=} + + source .circleci/setartname.sh + source .circleci/setdeploydir.sh + bash .circleci/setupsig.sh + bash .circleci/namefiles.sh + # echo ".circleci/sandstorm.sh" + + aws s3 cp $ROCKET_DEPLOY_DIR/ s3://download.rocket.chat/build/ --recursive + + bash .circleci/update-releases.sh + bash .circleci/docker.sh + bash .circleci/snap.sh + +workflows: + version: 2 + build-and-test: + jobs: + - build + - test-with-oplog: + requires: + - build + - test-without-oplog: + requires: + - build + - deploy: + requires: + - test-with-oplog + - test-without-oplog + filters: + branches: + only: + - develop + - circle-ci + tags: + only: + - "/^\\d+\\.\\d+\\.\\d+(-rc\\.\\d+)?$/" diff --git a/.circleci/docker.sh b/.circleci/docker.sh new file mode 100644 index 0000000000000..4edf27c217753 --- /dev/null +++ b/.circleci/docker.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -euvo pipefail +IFS=$'\n\t' + +CURL_URL="https://registry.hub.docker.com/u/rocketchat/rocket.chat/trigger/$DOCKER_TRIGGER_TOKEN/" + +if [[ $CIRCLE_TAG ]]; then + CURL_DATA='{"source_type":"Tag","source_name":"'"$CIRCLE_TAG"'"}'; +else + CURL_DATA='{"source_type":"Branch","source_name":"'"$CIRCLE_BRANCH"'"}'; +fi + +curl -H "Content-Type: application/json" --data "$CURL_DATA" -X POST "$CURL_URL" diff --git a/.circleci/namefiles.sh b/.circleci/namefiles.sh new file mode 100644 index 0000000000000..f2fd572105f3b --- /dev/null +++ b/.circleci/namefiles.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -euvo pipefail +IFS=$'\n\t' + +FILENAME="$ROCKET_DEPLOY_DIR/rocket.chat-$ARTIFACT_NAME.tgz"; + +ln -s /tmp/build/Rocket.Chat.tar.gz "$FILENAME" +gpg --armor --detach-sign "$FILENAME" diff --git a/.circleci/setartname.sh b/.circleci/setartname.sh new file mode 100644 index 0000000000000..d1fa44fbab946 --- /dev/null +++ b/.circleci/setartname.sh @@ -0,0 +1,23 @@ +if [[ $CIRCLE_TAG ]]; then + export ARTIFACT_NAME="$(npm run version --silent)" +else + export ARTIFACT_NAME="$(npm run version --silent).circleci-$CIRCLE_BUILD_NUM" +fi + +if [[ $CIRCLE_TAG =~ ^[0-9]+\.[0-9]+\.[0-9]+-rc\.[0-9]+ ]]; then + SNAP_CHANNEL=candidate + RC_RELEASE=candidate + RC_VERSION=$CIRCLE_TAG +elif [[ $CIRCLE_TAG =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + SNAP_CHANNEL=stable + RC_RELEASE=stable + RC_VERSION=$CIRCLE_TAG +else + SNAP_CHANNEL=edge + RC_RELEASE=develop + RC_VERSION=0.59.0-develop +fi + +export SNAP_CHANNEL +export RC_RELEASE +export RC_VERSION diff --git a/.circleci/setdeploydir.sh b/.circleci/setdeploydir.sh new file mode 100644 index 0000000000000..2c49e4a7027ae --- /dev/null +++ b/.circleci/setdeploydir.sh @@ -0,0 +1,2 @@ +export ROCKET_DEPLOY_DIR="/tmp/deploy" +mkdir -p $ROCKET_DEPLOY_DIR diff --git a/.circleci/setupsig.sh b/.circleci/setupsig.sh new file mode 100644 index 0000000000000..7b8f3820d745a --- /dev/null +++ b/.circleci/setupsig.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -euvo pipefail +IFS=$'\n\t' + +cp .circleci/sign.key.gpg /tmp +gpg --yes --batch --passphrase=$GPG_PASSWORD /tmp/sign.key.gpg +gpg --allow-secret-key-import --import /tmp/sign.key +rm /tmp/sign.key diff --git a/.circleci/sign.key.gpg b/.circleci/sign.key.gpg new file mode 100644 index 0000000000000000000000000000000000000000..488e275998d505474fd6a93c263b4931885d7d00 GIT binary patch literal 5117 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 ~/.ssh/known_hosts + +echo "Preparing to trigger a snap release for $SNAP_CHANNEL channel" + +cd $PWD/.snapcraft + +# We need some meta data so it'll actually commit. This could be useful to have for debugging later. +echo -e "Tag: $CIRCLE_TAG\r\nBranch: $CIRCLE_BRANCH\r\nBuild: $CIRCLE_BUILD_NUM\r\nCommit: $CIRCLE_SHA1" > buildinfo + +# Clone launchpad repo for the channel down. +git clone -b $SNAP_CHANNEL git+ssh://rocket.chat.buildmaster@git.launchpad.net/rocket.chat launchpad + +# Rarely will change, but just incase we copy it all +cp -r resources buildinfo launchpad/ +sed s/#{RC_VERSION}/$RC_VERSION/ snapcraft.yaml > launchpad/snapcraft.yaml + +cd launchpad +git add resources snapcraft.yaml buildinfo + +# Set commit author details +git config user.email "buildmaster@rocket.chat" +git config user.name "CircleCI" + +# Another place where basic meta data will live for at a glance info +git commit -m "CircleCI Build: $CIRCLE_BUILD_NUM CircleCI Commit: $CIRCLE_SHA1" + +# Push up up to the branch of choice. +git push origin $SNAP_CHANNEL + +# Clean up +cd .. +rm -rf launchpad diff --git a/.circleci/update-releases.sh b/.circleci/update-releases.sh new file mode 100644 index 0000000000000..57e01ceb35709 --- /dev/null +++ b/.circleci/update-releases.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -euvo pipefail +IFS=$'\n\t' + +if [[ $RC_RELEASE = "develop" ]]; then + aws s3api put-object \ + --acl public-read \ + --website-redirect-location "https://download.rocket.chat/build/$ARTIFACT_NAME" \ + --bucket download.rocket.chat \ + --key "build/rocket.chat-$RC_VERSION.tgz" +fi + +aws s3api put-object \ +--acl public-read \ +--website-redirect-location "https://download.rocket.chat/build/$ARTIFACT_NAME" \ +--bucket download.rocket.chat \ +--key "$RC_RELEASE" diff --git a/.scripts/set-version.js b/.scripts/set-version.js index 1c5037c92cd39..74a1024168fc0 100644 --- a/.scripts/set-version.js +++ b/.scripts/set-version.js @@ -22,6 +22,8 @@ const files = [ './package.json', './.sandstorm/sandstorm-pkgdef.capnp', './.travis/snap.sh', + './.circleci/snap.sh', + './.circleci/update-releases.sh', './.docker/Dockerfile', './packages/rocketchat-lib/rocketchat.info' ]; diff --git a/.scripts/start.js b/.scripts/start.js index fee3f78b90e85..eb506f6c225b2 100644 --- a/.scripts/start.js +++ b/.scripts/start.js @@ -67,7 +67,7 @@ function startApp(callback) { function startChimp() { startProcess({ name: 'Chimp', - command: 'meteor npm run chimp-test', + command: 'npm run chimp-test', options: { env: Object.assign({}, process.env, { NODE_PATH: process.env.NODE_PATH + diff --git a/tests/chimp-config.js b/tests/chimp-config.js index d03dcfc8273aa..5e01594a635f8 100644 --- a/tests/chimp-config.js +++ b/tests/chimp-config.js @@ -27,7 +27,7 @@ module.exports = { // chai: false, screenshotsOnError: true, screenshotsPath: '.screenshots', - captureAllStepScreenshots: false, + captureAllStepScreenshots: true, saveScreenshotsToDisk: true, // // Note: With a large viewport size and captureAllStepScreenshots enabled, // // you may run out of memory. Use browser.setViewportSize to make the diff --git a/tests/pageobjects/administration.page.js b/tests/pageobjects/administration.page.js index eeaeb62041660..518ad11bdbdb1 100644 --- a/tests/pageobjects/administration.page.js +++ b/tests/pageobjects/administration.page.js @@ -124,7 +124,11 @@ class Administration extends Page { element.waitForVisible(5000); browser.pause(500); const result = element.isVisible(); - return result[0]; + if (Array.isArray(result)) { + return result[0]; + } + + return result; } getUserFromList(user) { From b1db1e945873e380643723c20c2044f8f1499587 Mon Sep 17 00:00:00 2001 From: Diego Sampaio Date: Tue, 14 Nov 2017 17:46:57 -0200 Subject: [PATCH 6/9] Fix docker build --- .circleci/config.yml | 1 - .circleci/update-releases.sh | 16 +++------------- .docker/Dockerfile | 4 ++-- 3 files changed, 5 insertions(+), 16 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9fb2a7f6017e3..d8b516b1cdb89 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -283,7 +283,6 @@ workflows: branches: only: - develop - - circle-ci tags: only: - "/^\\d+\\.\\d+\\.\\d+(-rc\\.\\d+)?$/" diff --git a/.circleci/update-releases.sh b/.circleci/update-releases.sh index 57e01ceb35709..4e133c304fed1 100644 --- a/.circleci/update-releases.sh +++ b/.circleci/update-releases.sh @@ -2,16 +2,6 @@ set -euvo pipefail IFS=$'\n\t' -if [[ $RC_RELEASE = "develop" ]]; then - aws s3api put-object \ - --acl public-read \ - --website-redirect-location "https://download.rocket.chat/build/$ARTIFACT_NAME" \ - --bucket download.rocket.chat \ - --key "build/rocket.chat-$RC_VERSION.tgz" -fi - -aws s3api put-object \ ---acl public-read \ ---website-redirect-location "https://download.rocket.chat/build/$ARTIFACT_NAME" \ ---bucket download.rocket.chat \ ---key "$RC_RELEASE" +curl -X POST \ +-H "X-Update-Token: ${UPDATE_TOKEN}" \ +https://releases.rocket.chat/update diff --git a/.docker/Dockerfile b/.docker/Dockerfile index 1f0b11da59782..4a22e55b7f1a4 100644 --- a/.docker/Dockerfile +++ b/.docker/Dockerfile @@ -5,8 +5,8 @@ ENV RC_VERSION 0.59.4 MAINTAINER buildmaster@rocket.chat RUN set -x \ - && curl -SLf "https://download.rocket.chat/build/rocket.chat-${RC_VERSION}.tgz" -o rocket.chat.tgz \ - && curl -SLf "https://download.rocket.chat/build/rocket.chat-${RC_VERSION}.tgz.asc" -o rocket.chat.tgz.asc \ + && curl -SLf "https://releases.rocket.chat/${RC_VERSION}/download/" -o rocket.chat.tgz \ + && curl -SLf "https://releases.rocket.chat/${RC_VERSION}/asc" -o rocket.chat.tgz.asc \ && gpg --verify rocket.chat.tgz.asc \ && mkdir -p /app \ && tar -zxf rocket.chat.tgz -C /app \ From 8c7ce0c284746ca7ae44d0db555f118acda62d20 Mon Sep 17 00:00:00 2001 From: Diego Sampaio Date: Thu, 9 Nov 2017 10:34:12 -0200 Subject: [PATCH 7/9] Fix link to .asc file on S3 --- .circleci/setartname.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/setartname.sh b/.circleci/setartname.sh index d1fa44fbab946..c49f6a9196857 100644 --- a/.circleci/setartname.sh +++ b/.circleci/setartname.sh @@ -1,7 +1,7 @@ if [[ $CIRCLE_TAG ]]; then export ARTIFACT_NAME="$(npm run version --silent)" else - export ARTIFACT_NAME="$(npm run version --silent).circleci-$CIRCLE_BUILD_NUM" + export ARTIFACT_NAME="$(npm run version --silent).$CIRCLE_BUILD_NUM" fi if [[ $CIRCLE_TAG =~ ^[0-9]+\.[0-9]+\.[0-9]+-rc\.[0-9]+ ]]; then From 3d98b0a70ae2cc687f93394dd4492e625354efa3 Mon Sep 17 00:00:00 2001 From: Diego Sampaio Date: Wed, 29 Nov 2017 09:00:22 -0200 Subject: [PATCH 8/9] Use specific webdriverio package version --- .circleci/config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index d8b516b1cdb89..a118414f98e19 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -172,6 +172,7 @@ jobs: name: NPM install command: | npm install + npm install webdriverio@4.8.0 - run: name: Run Tests @@ -206,6 +207,7 @@ jobs: name: NPM install command: | npm install + npm install webdriverio@4.8.0 - run: name: Run Tests From 25f82b388e96ee71b474d1be0fd8ed49e9d3c63d Mon Sep 17 00:00:00 2001 From: Diego Sampaio Date: Wed, 29 Nov 2017 09:30:19 -0200 Subject: [PATCH 9/9] Use same NPM version as Meteor --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a118414f98e19..4dfc8af1c2b5c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -166,7 +166,7 @@ jobs: - run: name: Update NPM command: | - sudo npm install -g npm + sudo npm install -g npm@4.6.1 - run: name: NPM install @@ -201,7 +201,7 @@ jobs: - run: name: Update NPM command: | - sudo npm install -g npm + sudo npm install -g npm@4.6.1 - run: name: NPM install