forked from bigbluebutton/bbb-lti-broker
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fixed incompatibility issues of the URL between the broker and app
- Loading branch information
Showing
6 changed files
with
117 additions
and
55 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
#!/bin/bash | ||
|
||
################################################################################ | ||
# For this script to work properly it is required to define some environment variables | ||
# in the CI/CD Env variable declaration, while others should be passed as parameters. | ||
# | ||
#------------------------------------------------------------------------------ | ||
# Defined as part of the CD/CI Env Variables: | ||
# | ||
# CD_DOCKER_USERNAME | ||
# A DockerHub username to be used for uploading the build. | ||
# | ||
# CD_DOCKER_PASSWORD | ||
# A DockerHub password to be used for uploading the build. | ||
# | ||
# CD_DOCKER_REPO | ||
# A DockerHub repository. By default the CD_REF_SLUG is also used as the docker repo. | ||
# | ||
# CD_BUILD_ALL | ||
# As the build is supposed to be done only for master (for a nightly deployments) and for releases | ||
# (like 'release-2.0.5' for production deployments), it is additionally required to include this | ||
# variable in order to build any other brnach, as it may be required for testing or reviewing work | ||
# as part of the development process. | ||
# | ||
|
||
display_usage() { | ||
echo "This script should be used as part of a CI strategy." | ||
echo -e "Usage:\n build_image.sh [ARGUMENTS]" | ||
echo -e "\nMandatory arguments \n" | ||
echo -e " repo_slug The git repository (e.g. bigbluebutton/greenlight)" | ||
echo -e "\nOptional arguments \n" | ||
echo -e " branch | tag The branch (e.g. master | release-2.0.5)" | ||
} | ||
|
||
# if less than two arguments supplied, display usage | ||
if [ $# -le 0 ]; then | ||
display_usage | ||
exit 1 | ||
fi | ||
|
||
# check whether user had supplied -h or --help . If yes display usage | ||
if [[ ($# == "--help") || $# == "-h" ]]; then | ||
display_usage | ||
exit 0 | ||
fi | ||
|
||
export CD_REF_SLUG=$1 | ||
export CD_REF_NAME=$2 | ||
if [ -z $CD_REF_NAME ]; then | ||
export CD_REF_NAME=$(git branch | grep \* | cut -d ' ' -f2) | ||
fi | ||
|
||
if [ "$CD_REF_NAME" != "master" ] && [[ "$CD_REF_NAME" != *"release"* ]] && ( [ -z "$CD_BUILD_ALL" ] || [ "$CD_BUILD_ALL" != "true" ] ); then | ||
echo "#### Docker image for $CD_REF_SLUG:$CD_REF_NAME won't be built" | ||
exit 0 | ||
fi | ||
|
||
# Set the version tag when it is a release or the commit sha was included. | ||
if [[ "$CD_REF_NAME" == *"release"* ]]; then | ||
export CD_VERSION_CODE=${CD_REF_NAME:8} | ||
else | ||
export CD_VERSION_CODE="$CD_REF_NAME ($(expr substr $(git rev-parse HEAD) 1 7))" | ||
fi | ||
|
||
# Build the image | ||
if [ -z $CD_DOCKER_REPO ]; then | ||
export CD_DOCKER_REPO=$CD_REF_SLUG | ||
fi | ||
echo "#### Docker image $CD_DOCKER_REPO:$CD_REF_NAME is being built" | ||
docker build --build-arg version_code="${CD_VERSION_CODE}" -t $CD_DOCKER_REPO:$CD_REF_NAME . | ||
|
||
if [ -z "$CD_DOCKER_USERNAME" ] || [ -z "$CD_DOCKER_PASSWORD" ]; then | ||
echo "#### Docker image for $CD_DOCKER_REPO can't be published because CD_DOCKER_USERNAME or CD_DOCKER_PASSWORD are missing (Ignore this warning if running outside a CD/CI environment)" | ||
exit 0 | ||
fi | ||
|
||
# Publish the image | ||
docker login -u="$CD_DOCKER_USERNAME" -p="$CD_DOCKER_PASSWORD" | ||
echo "#### Docker image $CD_DOCKER_REPO:$CD_REF_NAME is being published" | ||
docker push $CD_DOCKER_REPO | ||
|
||
# Publish image as latest and v2 if it is a release (excluding alpha and beta) | ||
if [[ "$CD_REF_NAME" == *"release"* ]] && [[ "$CD_REF_NAME" != *"alpha"* ]] && [[ "$CD_REF_NAME" != *"beta"* ]]; then | ||
docker_image_id=$(docker images | grep -E "^$CD_DOCKER_REPO.*$CD_REF_NAME" | awk -e '{print $3}') | ||
docker tag $docker_image_id $CD_DOCKER_REPO:latest | ||
docker push $CD_DOCKER_REPO:latest | ||
docker tag $docker_image_id $CD_DOCKER_REPO:v2 | ||
docker push $CD_DOCKER_REPO:v2 | ||
fi | ||
exit 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,27 +1,28 @@ | ||
#!/bin/bash | ||
|
||
# Assets are precompiled on start because the root can change based on ENV["RELATIVE_URL_ROOT"] | ||
echo "Precompile assets..." | ||
bundle exec rake assets:precompile --trace | ||
if [ "$RAILS_ENV" = "production" ] && [ "$DB_ADAPTER" = "postgresql" ]; then | ||
while ! curl http://$DB_HOST:-localhost:${DB_PORT:-5432}/ 2>&1 | grep '52' | ||
do | ||
echo "Waiting for postgres to start up ..." | ||
sleep 1 | ||
done | ||
fi | ||
|
||
if [ -z ${DB_ADAPTER+x} ]; then | ||
echo "DB_ADAPTER not included, sqlite will be assumed" | ||
elif [ ${DB_ADAPTER} == 'postgresql' ]; then | ||
echo "DB_ADAPTER is ${DB_ADAPTER}, make sure the DB is up"; | ||
db_create=$(RAILS_ENV=$RAILS_ENV bundle exec rake db:create) | ||
echo $db_create | ||
|
||
echo "Database ${DB_HOST:-localhost} starting..." | ||
while ! pg_isready -h ${DB_HOST:-localhost} -p ${DB_PORT:-5432} > /dev/null 2> /dev/null; | ||
do | ||
sleep 1 | ||
done | ||
fi | ||
echo "Database ${DB_HOST:-localhost} up and running..." | ||
if ! bundle exec rake db:exists; then | ||
echo "Create the database..." | ||
bundle exec rake db:create | ||
if [[ $db_create == *"ERROR"* ]]; then | ||
echo ">>> Database migration" | ||
bundle exec rake db:migrate | ||
else | ||
echo ">>> Database initialization" | ||
bundle exec rake db:schema:load | ||
bundle exec rake db:seed | ||
fi | ||
echo "Database migrations..." | ||
bundle exec rake db:migrate db:seed | ||
|
||
# Assets are precompiled on start because the root can change based on ENV["RELATIVE_URL_ROOT"] | ||
echo "Precompile assets..." | ||
bundle exec rake assets:precompile --trace | ||
|
||
echo "Start app..." | ||
bundle exec rails s -b 0.0.0.0 -p 3400 | ||
bundle exec rails s -b 0.0.0.0 -p 3400 |