Skip to content

Commit

Permalink
Merge of 1817 Changes Files - drive by 646 Commits from RocketChat/de…
Browse files Browse the repository at this point in the history
…velop into ttrc-teams-mgh-v69-02-01

SCOPE:  This commit is work to sync / bring forward / update the TT Rocket.Chat teams code with current HEAD of the Rocket.Chat/develop branch.  The RocketChat feature/teams branch is nearly 900 commits behind it's upstream tracking source RocketChat/develop so this will just be the first in a series of commits.

This large first commit includes a a good portion of inbound changes from 646 upsteam commits with physical changes to  1817 files.

TT RC Upgrade MERGE STRATEGY:  After a number of expeirments I decided this Merge was a better strategy than rebase because we dont care as much about all the changes in the primary Rocket.Chat devlop branch timeline.    Rebase -p  would be better if we owned the main branch, but leaves complex feature/branches with a big loss in change history.

For TT this merge strategy was chosen better because it better maintains the linage how WE want to see it.
#   $  git merge -s recursive -X patience --no-commit --no-ff --stat --log --verbose upstream/develop

This merge strategy provides the clearest picture I have seen yet for:

1) What is Newer - what is different in the main Dev Branch after Marc forked it.  Will create a clear picture all changes we make to the code after this first major release by Marc.

2) Current, Base State.  What is a Clear Picture of the code as Marc has designed.  ( This option best shows what Changes and improvements Marc decided to introduce.)

3) Older, Pre-Marc.   Shows what Changes Marc made to diverge from the original, who's code and earlier commits he changed.   Lowers our risk..

SOURCE:  This RocketChat feature/teams code was written by Marc Enriquez (https://github.com/auterium) and submitted in the four following commits.

Change roomId generation to prevent issues with jitsi 7572135
h--ps://github.com/RocketChat/Rocket.Chat/commit/7572135e1f1c60ee19d64d13f73cd2c03d0de675

Add name to room creation of direct messages to prevent issue ee97ee9
h--ps://github.com/RocketChat/Rocket.Chat/commit/ee97ee944c5682d77ff739b2de7b62cfe21d39db

Merge branch 'develop' into feature/teams    58c4e0a
h--ps://github.com/RocketChat/Rocket.Chat/commit/58c4e0a2d3757cd3c6887a6beb9d40befe4ba2d9

Add basic support for teams 7a0e697
h--ps://github.com/RocketChat/Rocket.Chat/commit/7a0e697215ee131c540c5191b204243a893e059c

* Source of these changes is 646 commits from the default RocketChat/develop branch.
  [IMPROVE] Refactoring the snap backup scripts to improve UX
  [FIX] Close popover on shortcuts and writing (RocketChat#11562)
  [BREAK] Update the default port of the Prometheus exporter (RocketChat#11351)
  [FIX] Missing `fname` property in Livechat rooms (#11849_
  [FIX] Typo in a configuration key for SlackBridge excluded bot names (RocketChat#11872)
  adding integrations-attachments-example.png
  Bump version to 0.70.0-develop
  Bump version to 0.69.1
  .....
  • Loading branch information
jmscraig committed Sep 7, 2018
2 parents 31fb535 + 15a01ee commit 0a8a738
Show file tree
Hide file tree
Showing 1,815 changed files with 117,220 additions and 45,122 deletions.
147 changes: 145 additions & 2 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -152,10 +152,12 @@ jobs:
- run:
name: Install dependencies
command: |
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
echo "deb [ arch=amd64 ] http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google.list
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
sudo apt-get install -y mongodb-org-shell google-chrome-stable
- run:
name: Configure Replica Set
Expand Down Expand Up @@ -192,6 +194,14 @@ jobs:

- checkout

- run:
name: Install dependencies
command: |
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
echo "deb [ arch=amd64 ] http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google.list
sudo apt-get update
sudo apt-get install -y google-chrome-stable
- run:
name: NPM install
command: |
Expand Down Expand Up @@ -245,10 +255,118 @@ jobs:
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
bash .circleci/redhat-registry.sh
image-build:
<<: *defaults

docker:
- image: docker:17.05.0-ce-git

steps:
- attach_workspace:
at: /tmp

- checkout

- setup_remote_docker

- run:
name: Build Docker image
command: |
cd /tmp/build
tar xzf Rocket.Chat.tar.gz
rm Rocket.Chat.tar.gz
export CIRCLE_TAG=${CIRCLE_TAG:=}
if [[ $CIRCLE_TAG ]]; then
docker login -u $DOCKER_USER -p $DOCKER_PASS
echo "Build official Docker image"
cp ~/repo/.docker/Dockerfile .
docker build -t rocketchat/rocket.chat:$CIRCLE_TAG .
docker push rocketchat/rocket.chat:$CIRCLE_TAG
echo "Build preview Docker image"
cp ~/repo/.docker-mongo/Dockerfile .
cp ~/repo/.docker-mongo/entrypoint.sh .
docker build -t rocketchat/rocket.chat.preview:$CIRCLE_TAG .
docker push rocketchat/rocket.chat.preview:$CIRCLE_TAG
if echo "$CIRCLE_TAG" | grep -Eq '^[0-9]+\.[0-9]+\.[0-9]+$' ; then
docker tag rocketchat/rocket.chat:$CIRCLE_TAG rocketchat/rocket.chat:latest
docker push rocketchat/rocket.chat:latest
docker tag rocketchat/rocket.chat.preview:$CIRCLE_TAG rocketchat/rocket.chat.preview:latest
docker push rocketchat/rocket.chat.preview:latest
elif echo "$CIRCLE_TAG" | grep -Eq '^[0-9]+\.[0-9]+\.[0-9]+-rc\.[0-9]+$' ; then
docker tag rocketchat/rocket.chat:$CIRCLE_TAG rocketchat/rocket.chat:release-candidate
docker push rocketchat/rocket.chat:release-candidate
docker tag rocketchat/rocket.chat.preview:$CIRCLE_TAG rocketchat/rocket.chat.preview:release-candidate
docker push rocketchat/rocket.chat.preview:release-candidate
fi
exit 0
fi;
if [[ $CIRCLE_BRANCH == 'develop' ]]; then
docker login -u $DOCKER_USER -p $DOCKER_PASS
echo "Build official Docker image"
cp ~/repo/.docker/Dockerfile .
docker build -t rocketchat/rocket.chat:develop .
docker push rocketchat/rocket.chat:develop
echo "Build preview Docker image"
cp ~/repo/.docker-mongo/Dockerfile .
cp ~/repo/.docker-mongo/entrypoint.sh .
docker build -t rocketchat/rocket.chat.preview:develop .
docker push rocketchat/rocket.chat.preview:develop
exit 0
fi;
pr-image-build:
<<: *defaults

docker:
- image: docker:17.05.0-ce-git

steps:
- attach_workspace:
at: /tmp

- checkout

- setup_remote_docker

- run:
name: Build Docker image for PRs
command: |
export CIRCLE_PR_NUMBER="${CIRCLE_PR_NUMBER:-${CIRCLE_PULL_REQUEST##*/}}"
if [[ -z $CIRCLE_PR_NUMBER ]]; then
exit 0
fi;
cd /tmp/build
tar xzf Rocket.Chat.tar.gz
rm Rocket.Chat.tar.gz
docker login -u $DOCKER_USER -p $DOCKER_PASS
echo "Build official Docker image"
cp ~/repo/.docker/Dockerfile .
docker build -t rocketchat/rocket.chat:pr-$CIRCLE_PR_NUMBER .
docker push rocketchat/rocket.chat:pr-$CIRCLE_PR_NUMBER
echo "Build preview Docker image"
cp ~/repo/.docker-mongo/Dockerfile .
cp ~/repo/.docker-mongo/entrypoint.sh .
docker build -t rocketchat/rocket.chat.preview:pr-$CIRCLE_PR_NUMBER .
docker push rocketchat/rocket.chat.preview:pr-$CIRCLE_PR_NUMBER
workflows:
version: 2
build-and-test:
Expand Down Expand Up @@ -278,4 +396,29 @@ workflows:
only: develop
tags:
only: /^[0-9]+\.[0-9]+\.[0-9]+(-rc\.[0-9]+)?$/
- image-build:
requires:
- deploy
filters:
branches:
only: develop
tags:
only: /^[0-9]+\.[0-9]+\.[0-9]+(-rc\.[0-9]+)?$/
- hold:
type: approval
requires:
- build
filters:
branches:
ignore: develop
tags:
only: /^[0-9]+\.[0-9]+\.[0-9]+(-rc\.[0-9]+)?$/
- pr-image-build:
requires:
- hold
filters:
branches:
ignore: develop
tags:
only: /^[0-9]+\.[0-9]+\.[0-9]+(-rc\.[0-9]+)?$/

2 changes: 1 addition & 1 deletion .circleci/setartname.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ elif [[ $CIRCLE_TAG =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
else
SNAP_CHANNEL=edge
RC_RELEASE=develop
RC_VERSION=0.60.0-develop
RC_VERSION=0.66.0-develop
fi

export SNAP_CHANNEL
Expand Down
40 changes: 40 additions & 0 deletions .docker-mongo/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
FROM rocketchat/base:8

ADD . /app
ADD entrypoint.sh /app/bundle/

MAINTAINER buildmaster@rocket.chat

RUN set -x \
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" | tee /etc/apt/sources.list.d/mongodb-org-3.6.list \
&& apt-get update \
&& apt-get install -y --force-yes pwgen mongodb-org \
&& echo "mongodb-org hold" | dpkg --set-selections \
&& echo "mongodb-org-server hold" | dpkg --set-selections \
&& echo "mongodb-org-shell hold" | dpkg --set-selections \
&& echo "mongodb-org-mongos hold" | dpkg --set-selections \
&& echo "mongodb-org-tools hold" | dpkg --set-selections \
&& cd /app/bundle/programs/server \
&& npm install \
&& npm cache clear --force \
&& rm -rf /var/lib/apt/lists/*

VOLUME /app/uploads

WORKDIR /app/bundle

# needs a mongoinstance - defaults to container linking with alias 'mongo'
ENV DEPLOY_METHOD=docker-preview \
NODE_ENV=production \
MONGO_URL=mongodb://localhost:27017/rocketchat \
HOME=/tmp \
PORT=3000 \
ROOT_URL=http://localhost:3000 \
Accounts_AvatarStorePath=/app/uploads

EXPOSE 3000

RUN chmod +x /app/bundle/entrypoint.sh

ENTRYPOINT /app/bundle/entrypoint.sh
49 changes: 49 additions & 0 deletions .docker-mongo/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#!/bin/bash

echo """

 
 
 
   
      
        
           
           
           
         
         
          
          
          
       
             
           
        
        
    
       
  

"""

echo """
██████╗ ██████╗ ██████╗██╗ ██╗███████╗████████╗ ██████╗██╗ ██╗ █████╗ ████████╗ ██████╗ ██████╗ ███████╗██╗ ██╗██╗███████╗██╗ ██╗
██╔══██╗██╔═══██╗██╔════╝██║ ██╔╝██╔════╝╚══██╔══╝██╔════╝██║ ██║██╔══██╗╚══██╔══╝ ██╔══██╗██╔══██╗██╔════╝██║ ██║██║██╔════╝██║ ██║
██████╔╝██║ ██║██║ █████╔╝ █████╗ ██║ ██║ ███████║███████║ ██║ ██████╔╝██████╔╝█████╗ ██║ ██║██║█████╗ ██║ █╗ ██║
██╔══██╗██║ ██║██║ ██╔═██╗ ██╔══╝ ██║ ██║ ██╔══██║██╔══██║ ██║ ██╔═══╝ ██╔══██╗██╔══╝ ╚██╗ ██╔╝██║██╔══╝ ██║███╗██║
██║ ██║╚██████╔╝╚██████╗██║ ██╗███████╗ ██║██╗╚██████╗██║ ██║██║ ██║ ██║ ██║ ██║ ██║███████╗ ╚████╔╝ ██║███████╗╚███╔███╔╝
╚═╝ ╚═╝ ╚═════╝ ╚═════╝╚═╝ ╚═╝╚══════╝ ╚═╝╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚══════╝ ╚═══╝ ╚═╝╚══════╝ ╚══╝╚══╝
"""

mongod --smallfiles --storageEngine=mmapv1 --fork --config /etc/mongod.conf

until mongo --eval "db" &> /dev/null; do
echo "MongoDB still not ready, sleeping"
sleep 1
done

node main.js
22 changes: 22 additions & 0 deletions .docker-mongo/licenses/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
The MIT License (MIT)

Copyright (c) 2015-2017 Rocket.Chat Technologies Corp.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

8 changes: 1 addition & 7 deletions .docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,16 +1,10 @@
FROM rocketchat/base:8

ENV RC_VERSION 0.64.0-develop
ADD . /app

MAINTAINER buildmaster@rocket.chat

RUN set -x \
&& 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 \
&& rm rocket.chat.tgz rocket.chat.tgz.asc \
&& cd /app/bundle/programs/server \
&& npm install \
&& npm cache clear --force \
Expand Down
48 changes: 48 additions & 0 deletions .docker/Dockerfile.rhel
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
FROM registry.access.redhat.com/rhscl/nodejs-8-rhel7

ENV RC_VERSION 0.70.0-develop

MAINTAINER buildmaster@rocket.chat

LABEL name="Rocket.Chat" \
vendor="Rocket.Chat" \
version="${RC_VERSION}" \
release="1" \
url="https://rocket.chat" \
summary="The Ultimate Open Source Web Chat Platform" \
description="The Ultimate Open Source Web Chat Platform" \
run="docker run -d --name ${NAME} ${IMAGE}"


# This is ugly... But for some reason npm and node aren't available at this stage.
ENV PATH /opt/rh/rh-nodejs8/root/usr/bin:/opt/app-root/src/node_modules/.bin/:/opt/app-root/src/.npm-global/bin/:/opt/app-root/src/bin:/opt/app-root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

RUN set -x \
&& gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 0E163286C20D07B9787EBE9FD7F9D0414FD08104 \
&& 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 \
&& tar -zxf rocket.chat.tgz -C /opt/app-root/src/ \
&& cd /opt/app-root/src/bundle/programs/server \
&& npm install

COPY licenses /licenses

VOLUME /opt/app-root/src/uploads

WORKDIR /opt/app-root/src/bundle

# Hack needed to force use of bundled library instead of system level outdated library
# https://github.com/lovell/sharp/issues/892
ENV LD_PRELOAD=/opt/app-root/src/bundle/programs/server/npm/node_modules/sharp/vendor/lib/libz.so

ENV DEPLOY_METHOD=docker-redhat \
NODE_ENV=production \
MONGO_URL=mongodb://mongo:27017/rocketchat \
HOME=/tmp \
PORT=3000 \
ROOT_URL=http://localhost:3000

EXPOSE 3000

CMD ["node", "main.js"]
22 changes: 22 additions & 0 deletions .docker/licenses/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
The MIT License (MIT)

Copyright (c) 2015-2017 Rocket.Chat Technologies Corp.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Loading

0 comments on commit 0a8a738

Please sign in to comment.