forked from metabase/metabase
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfunctions
92 lines (69 loc) · 3.12 KB
/
functions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/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}
}