#!/bin/bash

set -x
set -euo pipefail

DOC=${1:-jenkins-mysql-aggregate}

DOC=${DOC/=/-}

mkdir -m 0777 -p artifacts

if [[ "${PLATFORM}" == 'i686' ]]; then
  DOC=${DOC}-i686
  sed -e 's|^FROM .*|FROM 32bit/ubuntu:xenial|' Dockerfile | docker build --build-arg=BUILD_UID=`id -u` -t "${DOC}" -
else
  docker build --build-arg=BUILD_UID=`id -u` -t "${DOC}" .
fi

# created with
# cgcreate -g cpu:/cpulimited
# cgset -r cpu.shares=1 cpulimited
# so 1 share out of 1024 is for this control group

#if [[ `lscgroup cpu:cpulimited` == 'cpu,cpuacct:/cpulimited/' ]]; then
#  DOCKER_OPT=--cgroup-parent cpu:cpulimited
#else
  DOCKER_OPT=
#fi

mkdir -p "${WORKSPACE}"/compiler
mkdir -p "${HOME}"/.mysql-ccache

ls -la . ..
if [ -e ../*.tbz ]
then
  for tarball in ../*.tbz
  do
     tar -jxf "${tarball}" -C "${WORKSPACE}"/compiler
  done
fi

if [ -e ../libgalera_smm.so ]
then
  cp ../libgalera_smm.so "${WORKSPACE}"/source
fi

RUNNAME=${DOC}-${CC}-${FLAVOUR}-${FLAVOUR_BRANCH/=/-}-${BUILD_TYPE}

# make sure we aren't running on the same name
docker rm ${RUNNAME} || true

docker run ${DOCKER_OPT} --cpu-shares=2 --shm-size=32G \
            --name "${RUNNAME}" \
            --volume "${WORKSPACE}"/source:/source \
            --volume "${WORKSPACE}"/scripts:/scripts \
            --volume "${WORKSPACE}"/artifacts:/artifacts \
            --volume "${HOME}"/.mysql-ccache:/ccache \
            --volume "${WORKSPACE}"/compiler:/compiler \
            --env "CC=${CC}" \
            --env "FLAVOUR=${FLAVOUR}" \
            --env "FLAVOUR_BRANCH=${FLAVOUR_BRANCH}" \
            --env "BUILD_TYPE=${BUILD_TYPE}" \
            -t "${DOC}"
