Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
FROM node:12.22.1-buster-slim

LABEL maintainer="[email protected]"
LABEL maintainer="[email protected]"

# dependencies
RUN groupadd -g 65533 -r rocketchat \
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
name: Build and Test
name: Build and Test Custom

on:
release:
types: [published]
pull_request:
branches: '**'
push:
branches:
- develop
- customize-develop
tags:
- "*-custom"

env:
CI: true
Expand Down Expand Up @@ -142,7 +140,7 @@ jobs:
# git checkout -- server/main.js client/main.js .meteor/packages

- name: Reset Meteor
if: startsWith(github.ref, 'refs/tags/') == 'true' || github.ref == 'refs/heads/develop'
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/customize-develop'
run: |
meteor reset

Expand Down Expand Up @@ -404,7 +402,7 @@ jobs:

deploy:
runs-on: ubuntu-latest
if: github.event_name == 'release' || github.ref == 'refs/heads/develop'
if: startsWith(github.ref, 'refs/tags/') && endsWith(github.ref, '-custom') || github.ref == 'refs/heads/customize-develop'
needs: test

steps:
Expand All @@ -416,69 +414,39 @@ jobs:
name: build
path: /tmp/build

- name: Publish assets
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: 'us-east-1'
GPG_PASSWORD: ${{ secrets.GPG_PASSWORD }}
REDHAT_REGISTRY_PID: ${{ secrets.REDHAT_REGISTRY_PID }}
REDHAT_REGISTRY_KEY: ${{ secrets.REDHAT_REGISTRY_KEY }}
UPDATE_TOKEN: ${{ secrets.UPDATE_TOKEN }}
- name: Prepare publish assets
run: |
if [[ '${{ github.event_name }}' = 'release' ]]; then
GIT_TAG="${GITHUB_REF#*tags/}"
GIT_BRANCH=""
ARTIFACT_NAME="$(npm run version --silent)"
RC_VERSION=$GIT_TAG

if [[ $GIT_TAG =~ ^[0-9]+\.[0-9]+\.[0-9]+-rc\.[0-9]+ ]]; then
SNAP_CHANNEL=candidate
RC_RELEASE=candidate
elif [[ $GIT_TAG =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
SNAP_CHANNEL=stable
RC_RELEASE=stable
fi
else
GIT_TAG=""
GIT_BRANCH="${GITHUB_REF#*heads/}"
ARTIFACT_NAME="$(npm run version --silent).$GITHUB_SHA"
RC_VERSION="$(npm run version --silent)"
SNAP_CHANNEL=edge
RC_RELEASE=develop
fi;

ROCKET_DEPLOY_DIR="/tmp/deploy"
FILENAME="$ROCKET_DEPLOY_DIR/rocket.chat-$ARTIFACT_NAME.tgz";

aws s3 cp s3://rocketchat/sign.key.gpg .github/sign.key.gpg

mkdir -p $ROCKET_DEPLOY_DIR

cp .github/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

ln -s /tmp/build/Rocket.Chat.tar.gz "$FILENAME"
gpg --armor --detach-sign "$FILENAME"

aws s3 cp $ROCKET_DEPLOY_DIR/ s3://download.rocket.chat/build/ --recursive

curl -H "Content-Type: application/json" -H "X-Update-Token: $UPDATE_TOKEN" -d \
"{\"commit\": \"$GITHUB_SHA\", \"tag\": \"$RC_VERSION\", \"branch\": \"$GIT_BRANCH\", \"artifactName\": \"$ARTIFACT_NAME\", \"releaseType\": \"$RC_RELEASE\" }" \
https://releases.rocket.chat/update

# Makes build fail if the release isn't there
curl --fail https://releases.rocket.chat/$RC_VERSION/info

if [[ $GIT_TAG ]]; then
curl -X POST \
https://connect.redhat.com/api/v2/projects/$REDHAT_REGISTRY_PID/build \
-H "Authorization: Bearer $REDHAT_REGISTRY_KEY" \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json' \
-d '{"tag":"'$GIT_TAG'"}'
fi
- name: Create Release
id: create_release
uses: actions/[email protected]
if: startsWith(github.ref, 'refs/tags/')
env:
GITHUB_TOKEN: ${{ secrets.PERSONAL_GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}
prerelease: false

- name: Upload Release Asset
id: upload-release-asset
uses: actions/[email protected]
if: startsWith(github.ref, 'refs/tags/')
env:
GITHUB_TOKEN: ${{ secrets.PERSONAL_GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: /tmp/build/Rocket.Chat.tar.gz
asset_name: Rocket.Chat.tar.gz
asset_content_type: application/gzip

image-build:
runs-on: ubuntu-latest
Expand All @@ -489,7 +457,7 @@ jobs:
release: ["official", "preview"]

env:
IMAGE: "rocketchat/rocket.chat"
IMAGE: "lltcggie/rocket.chat"

steps:
- uses: actions/checkout@v2
Expand Down Expand Up @@ -524,7 +492,7 @@ jobs:
fi;

- name: Build Docker image for tag
if: github.event_name == 'release'
if: startsWith(github.ref, 'refs/tags/') && endsWith(github.ref, '-custom')
run: |
cd /tmp/build
GIT_TAG="${GITHUB_REF#*tags/}"
Expand All @@ -533,6 +501,10 @@ jobs:
IMAGE="${IMAGE}.preview"
fi;

if echo "$GIT_TAG" | grep -Eq '.+-custom$' ; then
export GIT_TAG=`echo "$GIT_TAG" | sed -e 's/-custom$//g'`
fi;

docker build -t ${IMAGE}:$GIT_TAG .
docker push ${IMAGE}:$GIT_TAG

Expand All @@ -546,7 +518,7 @@ jobs:
docker push ${IMAGE}:${RELEASE}

- name: Build Docker image for develop
if: github.ref == 'refs/heads/develop'
if: github.ref == 'refs/heads/customize-develop'
run: |
cd /tmp/build

Expand All @@ -556,59 +528,3 @@ jobs:

docker build -t ${IMAGE}:develop .
docker push ${IMAGE}:develop

services-image-build:
runs-on: ubuntu-latest
needs: deploy

strategy:
matrix:
service: ["account", "authorization", "ddp-streamer", "presence", "stream-hub"]

steps:
- uses: actions/checkout@v2

- name: Use Node.js 12.22.1
uses: actions/setup-node@v2
with:
node-version: "12.22.1"

- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}

- name: Build Docker images
run: |
# defines image tag
if [[ $GITHUB_REF == refs/tags/* ]]; then
IMAGE_TAG="${GITHUB_REF#refs/tags/}"
else
IMAGE_TAG="${GITHUB_REF#refs/heads/}"
fi

# first install repo dependencies
npm i

# then micro services dependencies
cd ./ee/server/services
npm i
npm run build

echo "Building Docker image for service: ${{ matrix.service }}:${IMAGE_TAG}"

docker build --build-arg SERVICE=${{ matrix.service }} -t rocketchat/${{ matrix.service }}-service:${IMAGE_TAG} .

docker push rocketchat/${{ matrix.service }}-service:${IMAGE_TAG}

if [[ $GITHUB_REF == refs/tags/* ]]; then
if echo "$IMAGE_TAG" | grep -Eq '^[0-9]+\.[0-9]+\.[0-9]+$' ; then
RELEASE="latest"
elif echo "$IMAGE_TAG" | grep -Eq '^[0-9]+\.[0-9]+\.[0-9]+-rc\.[0-9]+$' ; then
RELEASE="release-candidate"
fi

docker tag rocketchat/${{ matrix.service }}-service:${IMAGE_TAG} rocketchat/${{ matrix.service }}-service:${RELEASE}
docker push rocketchat/${{ matrix.service }}-service:${RELEASE}
fi
Loading