#!/usr/bin/env bash

ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

# includes
source ${ROOT_DIR}/config.sh
source ${ROOT_DIR}/helper.sh

# args
version=$1
git_branch=$(get_arg $2 v${version})

# download source
build_dir=$(mktemp -d)
download_source ${GIT_URL} ${git_branch} ${build_dir} /src
cp -rf ${build_dir}/src/docker/services/main/* ${build_dir}/
cp -rf ${build_dir}/src/deploy/docker/services/main/* ${build_dir}/
sedi '/^WORKDIR.*/i\'$'\n''COPY src /var/www'$'\n' ${build_dir}/Dockerfile
sedi '/^WORKDIR.*/i\'$'\n''RUN chmod -R 777 /var/www/storage'$'\n' ${build_dir}/Dockerfile

# install source
cd ${build_dir}/src
composer_install
rm -rf .git deploy docker

# build
cd ${build_dir}
docker build -t ${REGISTRY_DOCKER_IMAGE}:${version} .
docker push ${REGISTRY_DOCKER_IMAGE}:${version}

# notify
notifyToSlack ${SLACK_WEBHOOK_URL} \
  "$(printf 'Project: %s\nVersion: %s\nPipeline: %s' \
    "${CI_PROJECT_PATH}" \
    "${version}" \
    "${CI_PIPELINE_URL}" \
  )"

# clean up
rm -rf ${build_dir}
