Skip to content

Commit

Permalink
Chore: Run tests on docker (#25556)
Browse files Browse the repository at this point in the history
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
  • Loading branch information
sampaiodiego and ggazzo authored Jun 17, 2022
1 parent 391bb8c commit eedc18b
Show file tree
Hide file tree
Showing 9 changed files with 617 additions and 598 deletions.
69 changes: 69 additions & 0 deletions .github/actions/build-docker-image-service/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: 'Build Micro Services Docker image'
description: 'Build Rocket.Chat Micro Services Docker images'

inputs:
docker-tag:
required: true
service:
required: true
username:
required: false
password:
required: false

outputs:
image-name:
value: ${{ steps.build-image.outputs.image-name }}

runs:
using: "composite"
steps:
# - shell: bash
# name: Free disk space
# run: |
# sudo swapoff -a
# sudo rm -f /swapfile
# sudo apt clean
# docker rmi $(docker image ls -aq)
# df -h

- shell: bash
id: build-image
run: |
LOWERCASE_REPOSITORY=$(echo "${{ github.repository_owner }}" | tr "[:upper:]" "[:lower:]")
IMAGE_TAG="${{ inputs.docker-tag }}"
IMAGE_NAME="ghcr.io/${LOWERCASE_REPOSITORY}/${{ inputs.service }}-service:${IMAGE_TAG}"
echo "Building Docker image for service: ${{ inputs.service }}:${IMAGE_TAG}"
if [[ "${{ inputs.service }}" == "ddp-streamer" ]]; then
DOCKERFILE_PATH="./ee/apps/ddp-streamer/Dockerfile"
else
DOCKERFILE_PATH="./apps/meteor/ee/server/services/Dockerfile"
fi
docker build \
--build-arg SERVICE=${{ inputs.service }} \
-t ${IMAGE_NAME} \
-f ${DOCKERFILE_PATH} \
.
echo "::set-output name=image-name::${IMAGE_NAME}"
- name: Login to GitHub Container Registry
if: github.event.pull_request.head.repo.full_name == github.repository || github.ref == 'refs/heads/develop'
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ inputs.username }}
password: ${{ inputs.password }}

- name: Publish image
shell: bash
if: github.event.pull_request.head.repo.full_name == github.repository || github.ref == 'refs/heads/develop'
run: |
echo "Push Docker image: ${{ steps.build-image.outputs.image-name }}"
docker push ${{ steps.build-image.outputs.image-name }}
85 changes: 85 additions & 0 deletions .github/actions/build-docker-image/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: 'Build Docker image'
description: 'Build Rocket.Chat Docker image'

inputs:
root-dir:
required: true
docker-tag:
required: true
release:
required: true
username:
required: false
password:
required: false

outputs:
image-name:
value: ${{ steps.build-image.outputs.image-name }}

runs:
using: composite
steps:
# - shell: bash
# name: Free disk space
# run: |
# sudo swapoff -a
# sudo rm -f /swapfile
# sudo apt clean
# docker rmi $(docker image ls -aq)
# df -h

- shell: bash
id: build-image
run: |
cd ${{ inputs.root-dir }}
LOWERCASE_REPOSITORY=$(echo "${{ github.repository_owner }}" | tr "[:upper:]" "[:lower:]")
IMAGE_NAME="rocket.chat"
if [[ '${{ inputs.release }}' = 'preview' ]]; then
IMAGE_NAME="${IMAGE_NAME}.preview"
fi;
IMAGE_NAME="ghcr.io/${LOWERCASE_REPOSITORY}/${IMAGE_NAME}:${{ inputs.docker-tag }}"
if [[ '${{ inputs.release }}' = 'alpine' ]]; then
IMAGE_NAME="${IMAGE_NAME}.${{ inputs.release }}"
fi;
echo "Build Docker image ${IMAGE_NAME}"
DOCKER_PATH="${GITHUB_WORKSPACE}/apps/meteor/.docker"
if [[ '${{ inputs.release }}' = 'preview' ]]; then
DOCKER_PATH="${DOCKER_PATH}-mongo"
fi;
DOCKERFILE_PATH="${DOCKER_PATH}/Dockerfile"
if [[ '${{ inputs.release }}' = 'alpine' ]]; then
DOCKERFILE_PATH="${DOCKERFILE_PATH}.${{ inputs.release }}"
fi;
echo "Copy Dockerfile for release: ${{ inputs.release }}"
cp $DOCKERFILE_PATH ./Dockerfile
if [ -e ${DOCKER_PATH}/entrypoint.sh ]; then
cp ${DOCKER_PATH}/entrypoint.sh .
fi;
echo "Build ${{ inputs.release }} Docker image"
docker build -t $IMAGE_NAME .
echo "::set-output name=image-name::${IMAGE_NAME}"
- name: Login to GitHub Container Registry
if: github.event.pull_request.head.repo.full_name == github.repository && (github.event_name == 'release' || github.ref == 'refs/heads/develop')
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ inputs.username }}
password: ${{ inputs.password }}

- name: Publish image
shell: bash
if: github.event.pull_request.head.repo.full_name == github.repository && (github.event_name == 'release' || github.ref == 'refs/heads/develop')
run: |
echo "Push Docker image: ${{ steps.build-image.outputs.image-name }}"
docker push ${{ steps.build-image.outputs.image-name }}
Loading

0 comments on commit eedc18b

Please sign in to comment.