Skip to content
Snippets Groups Projects
Unverified Commit 39aabe49 authored by Tom Robinson's avatar Tom Robinson
Browse files

Merge branch 'master' of github.com:metabase/metabase into math-aggregations-frontend

parents 9f1e07d6 60ac2473
No related branches found
No related tags found
No related merge requests found
option_settings:
- namespace: aws:elasticbeanstalk:command
option_name: Timeout
value: 600
commands:
test_command:
command: sed -i 's/location \/ {/location \/ {\nif ($http_x_forwarded_proto != "https") {\n set $var "redirect";\n}\n\nif ($request_uri = "\/api\/health") {\n set $var "${var}_health";\n}\n\nif ($var = 'redirect') {\n rewrite ^ https:\/\/$host$request_uri? permanent;\n}\n/' *-proxy.conf
cwd: /etc/nginx/sites-available
ignoreErrors: true
FROM ubuntu:trusty
ENV LC_ALL C
ENV LANG C.UTF-8
ENV DEBIAN_FRONTEND noninteractive
ENV DEBCONF_NONINTERACTIVE_SEEN true
ENV MB_JETTY_PORT 3000
# basic update of our system + adding Java
RUN apt-get update && \
apt-get install -y openjdk-7-jre
# include our local build in the image
# TODO: eventually we could probably set this up to download the jar file dynamically
COPY ./metabase.jar /app/
COPY ./run_metabase.sh /app/
RUN chmod 755 /app/run_metabase.sh
# make our webserver port available
EXPOSE 3000
# run it
ENTRYPOINT ["/app/run_metabase.sh"]
{
"AWSEBDockerrunVersion": "1",
"Logging": "/var/log/metabase"
}
#!/bin/bash
# Metabase Web Container
export MB_JETTY_HOST=$HOSTNAME
# NOTE: we set MB_JETTY_PORT in our Dockerfile in order to ensure we bind to the port exposed by Docker
# Metabase Database Info
# TODO: we could make this generic by first checking if the $RDS_* env variables are available and if
# so then apply the code below and map them to our Metabase env variables
export MB_DB_DBNAME=$RDS_DB_NAME
export MB_DB_USER=$RDS_USERNAME
export MB_DB_PASS=$RDS_PASSWORD
export MB_DB_HOST=$RDS_HOSTNAME
export MB_DB_PORT=$RDS_PORT
# TODO: dynamically determine type, probably using the port number
export MB_DB_TYPE=postgres
exec java -Dlogfile.path=target/log -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -server -jar /app/metabase.jar
#!/bin/bash
# for reference
# CIRCLE_SHA1=a3262e9b60a25e6a8a7faa29478b2b455b5ec4a3
# CIRCLE_BRANCH=master
if [ $# -ne 2 ]; then
echo "usage: $0 stackid appid"
exit 1
fi
STACKID=$1
APPID=$2
echo "deploying $CIRCLE_SHA1 from $CIRCLE_BRANCH ..."
aws opsworks create-deployment --stack-id $STACKID --app-id $APPID --comment "deploying $CIRCLE_SHA1 from $CIRCLE_BRANCH" --command='{"Name": "deploy"}'
#!/bin/bash
set -eo pipefail
BASEDIR=$(dirname $0)
source "$BASEDIR/functions"
EB_ENVIRONMENT=metabase-staging
# deploy EB version to environment
deploy_version ${EB_ENVIRONMENT}
#!/bin/bash
set -eo pipefail
BASEDIR=$(dirname $0)
source "$BASEDIR/functions"
# deploy EB version to environment
deploy_version "$1" "$2"
#!/bin/bash
set -eo pipefail
[[ -f /root/bin/aws.sh ]] && source /root/bin/aws.sh
BASEDIR=$(dirname $0)
PROJECT_ROOT=$(cd ${BASEDIR}/..; pwd)
ARTIFACTS_DIR="$PROJECT_ROOT/deploy/artifacts"
ARTIFACTS_S3BUCKET=${S3BUCKET:=metabase-artifacts}
BRANCH=$(cd ${PROJECT_ROOT}; $(which git) rev-parse --abbrev-ref HEAD)
# OpsWorks creates a deploy branch. We'll use master in this case
[[ "$BRANCH" == "deploy" ]] && BRANCH="master"
COMMITISH=$(cd ${PROJECT_ROOT}; $(which git) rev-parse --short HEAD)
DATE=$(date +%Y-%m-%d)
DEFAULT_RELEASE_ZIP_FILE_NAME="metabase-$BRANCH-$DATE-$COMMITISH.zip"
export LANG=en_US.UTF-8
export LANGUAGE=$LANG
export LC_ALL=$LANG
build_uberjar() {
[[ "$USER" == "root" ]] && export LEIN_ROOT=true
$(which locale) | $(which sort) || true
echo "building uberjar"
${PROJECT_ROOT}/bin/build
}
upload_release_artifacts() {
$(which locale) | $(which sort) || true
echo "uploading $ARTIFACTS_DIR/*.jar -> $ARTIFACTS_S3BUCKET/jar/"
aws s3 cp $ARTIFACTS_DIR/ s3://$ARTIFACTS_S3BUCKET/jar/ --recursive --exclude "*" --include "*.jar"
echo "uploading $ARTIFACTS_DIR/*.zip -> $ARTIFACTS_S3BUCKET/eb/"
aws s3 cp $ARTIFACTS_DIR/ s3://$ARTIFACTS_S3BUCKET/eb/ --recursive --exclude "*" --include "*.zip"
}
mk_release_artifacts() {
METABASE_JAR_NAME="metabase.jar"
RELEASE_TYPE="aws-eb-docker"
RELEASE_JAR_FILE_NAME=${METABASE_JAR_NAME%.jar}-$BRANCH-$DATE-$COMMITISH.jar
RELEASE_ZIP_FILE_NAME="$1"
UBERJAR_DIR="${PROJECT_ROOT}/target/uberjar"
if [[ -z $RELEASE_ZIP_FILE_NAME ]]; then
RELEASE_ZIP_FILE_NAME=$DEFAULT_RELEASE_ZIP_FILE_NAME
echo "release name not provided defaulting to $RELEASE_ZIP_FILE_NAME"
fi
RELEASE_FILES="${PROJECT_ROOT}/deploy/${RELEASE_TYPE}"
RELEASE_FILE="${PROJECT_ROOT}/${RELEASE_ZIP_FILE_NAME}"
# package up the release files
cd $RELEASE_FILES; zip -r $RELEASE_FILE * .ebextensions
# add the built uberjar
cd $UBERJAR_DIR; zip $RELEASE_FILE $METABASE_JAR_NAME
mkdir -p $ARTIFACTS_DIR
rm -f $ARTIFACTS_DIR/*
mv -f $RELEASE_FILE $ARTIFACTS_DIR/
mv -f $UBERJAR_DIR/$METABASE_JAR_NAME $ARTIFACTS_DIR/$RELEASE_JAR_FILE_NAME
upload_release_artifacts
}
create_eb_version() {
EB_APPLICATION=Metabase
EB_VERSION_LABEL=$1
S3_KEY=$2
$(which locale) | $(which sort) || true
[[ -z "$EB_VERSION_LABEL" ]] && EB_VERSION_LABEL="$BRANCH-$DATE-$COMMITISH"
[[ -z "$S3_KEY" ]] && S3_KEY=$DEFAULT_RELEASE_ZIP_FILE_NAME
echo "Creating app version in EB"
aws elasticbeanstalk create-application-version --no-auto-create-application --region us-east-1 --application-name ${EB_APPLICATION} --version-label ${EB_VERSION_LABEL} --source-bundle S3Bucket="${ARTIFACTS_S3BUCKET}",S3Key="eb/${S3_KEY}"
}
deploy_version() {
EB_ENVIRONMENT=$1
EB_VERSION_LABEL=$2
$(which locale) | $(which sort) || true
[[ -z "$EB_ENVIRONMENT" ]] && EB_VERSION_LABEL="metabase-staging" && echo ""
[[ -z "$EB_VERSION_LABEL" ]] && EB_VERSION_LABEL="$BRANCH-$DATE-$COMMITISH"
aws elasticbeanstalk update-environment --region us-east-1 --environment-name ${EB_ENVIRONMENT} --version-label ${EB_VERSION_LABEL}
}
#!/bin/bash
set -eo pipefail
BASEDIR=$(dirname $0)
source "$BASEDIR/functions"
build_uberjar
mk_release_artifacts "$1"
#!/bin/bash
set -eo pipefail
BASEDIR=$(dirname $0)
source "$BASEDIR/functions"
create_eb_version "$1" "$2"
......@@ -210,7 +210,7 @@
{:date-interval (u/drop-first-arg date-interval)
:details-fields (constantly [{:name "db"
:display-name "Connection String"
:placeholder "file:/Users/camsaul/bird_sightings/toucans;AUTO_SERVER=TRUE"
:placeholder "file:/Users/camsaul/bird_sightings/toucans"
:required true}])
:humanize-connection-error-message (u/drop-first-arg humanize-connection-error-message)
:process-query-in-context (u/drop-first-arg process-query-in-context)})
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment