blob: 5a5186b16ee08535013bc1becc0c2b24eb01a171 [file] [log] [blame]
#!/usr/bin/env bash
########################### Teamcity Build Step: Command Line #######################
: <<EOF
#!/bin/bash
if [[ -f "${teamcity_build_checkoutDir:-}"/regression-test/pipeline/cloud_p0/deploy.sh ]]; then
cd "${teamcity_build_checkoutDir}"/regression-test/pipeline/cloud_p0
bash -x deploy.sh
else
echo "Build Step file missing: regression-test/pipeline/cloud_p0/deploy.sh" && exit 1
fi
EOF
#####################################################################################
########################## deploy.sh content ########################################
# shellcheck source=/dev/null
source "$(bash "${teamcity_build_checkoutDir}"/regression-test/pipeline/common/get-or-set-tmp-env.sh 'get')"
if ${skip_pipeline:=false}; then echo "INFO: skip build pipline" && exit 0; else echo "INFO: no skip"; fi
# shellcheck source=/dev/null
# upload_doris_log_to_oss, download_oss_file
source "${teamcity_build_checkoutDir}"/regression-test/pipeline/common/oss-utils.sh
# shellcheck source=/dev/null
# stop_doris, install_fdb, clean_fdb, print_doris_conf,
# start_doris_fe, get_doris_conf_value, start_doris_be,
# print_doris_fe_log, print_doris_be_log, archive_doris_logs
source "${teamcity_build_checkoutDir}"/regression-test/pipeline/common/doris-utils.sh
if ${DEBUG:-false}; then
pr_num_from_trigger=${pr_num_from_debug:-"30772"}
commit_id_from_trigger=${commit_id_from_debug:-"8a0077c2cfc492894d9ff68916e7e131f9a99b65"}
fi
echo "#### Check env"
if [[ -z "${teamcity_build_checkoutDir}" ]]; then echo "ERROR: env teamcity_build_checkoutDir not set" && exit 1; fi
if [[ -z "${pr_num_from_trigger}" ]]; then echo "ERROR: env pr_num_from_trigger not set" && exit 1; fi
if [[ -z "${commit_id_from_trigger}" ]]; then echo "ERROR: env commit_id_from_trigger not set" && exit 1; fi
if [[ -z "${oss_ak}" || -z "${oss_sk}" ]]; then echo "ERROR: env oss_ak or oss_sk not set." && exit 1; fi
echo "#### Deploy Doris ####"
DORIS_HOME="${teamcity_build_checkoutDir}/output"
export DORIS_HOME
exit_flag=0
(
echo "#### 1. download doris binary"
cd "${teamcity_build_checkoutDir}"
export OSS_DIR="${OSS_DIR:-"oss://opensource-pipeline/compile_result"}"
if download_oss_file "${pr_num_from_trigger}_${commit_id_from_trigger}.tar.gz"; then
rm -rf "${teamcity_build_checkoutDir}"/output
tar -I pigz -xf "${pr_num_from_trigger}_${commit_id_from_trigger}.tar.gz"
else exit 1; fi
echo "#### 2. try to kill old doris process and clean foundationdb"
stop_doris
install_fdb && clean_fdb "cloud_instance_0"
set -e
echo "#### 3. copy conf from regression-test/pipeline/cloud_p0/conf/ and modify"
cp -rf "${DORIS_HOME}"/ms/ "${DORIS_HOME}"/recycler/
cp -f "${teamcity_build_checkoutDir}"/regression-test/pipeline/cloud_p0/conf/fe_custom.conf "${DORIS_HOME}"/fe/conf/
cp -f "${teamcity_build_checkoutDir}"/regression-test/pipeline/cloud_p0/conf/be_custom.conf "${DORIS_HOME}"/be/conf/
fdb_cluster="$(cat /etc/foundationdb/fdb.cluster)"
sed -i "s/^fdb_cluster = .*/fdb_cluster = ${fdb_cluster}/" "${DORIS_HOME}"/ms/conf/doris_cloud.conf
sed -i "s/^fdb_cluster = .*/fdb_cluster = ${fdb_cluster}/" "${DORIS_HOME}"/recycler/conf/doris_cloud.conf
cat "${teamcity_build_checkoutDir}"/regression-test/pipeline/cloud_p0/conf/ms_custom.conf >>"${DORIS_HOME}"/ms/conf/doris_cloud.conf
echo >>"${DORIS_HOME}"/ms/conf/doris_cloud.conf
cat "${teamcity_build_checkoutDir}"/regression-test/pipeline/cloud_p0/conf/recycler_custom.conf >>"${DORIS_HOME}"/recycler/conf/doris_cloud.conf
echo >>"${DORIS_HOME}"/recycler/conf/doris_cloud.conf
print_doris_conf
echo "#### 4. start Doris"
JAVA_HOME="$(find /usr/lib/jvm -maxdepth 1 -type d -name 'java-17-*' | sed -n '1p')"
export JAVA_HOME
if ! start_doris_ms; then exit 1; fi
if ! start_doris_recycler; then exit 1; fi
if ! create_warehouse; then exit 1; fi
if ! warehouse_add_fe; then exit 1; fi
if ! warehouse_add_be; then exit 1; fi
if ! prepare_java_udf; then exit 1; fi
if ! start_doris_fe; then exit 1; fi
if ! start_doris_be; then exit 1; fi
if ! deploy_doris_sql_converter; then exit 1; else
set_session_variable sql_converter_service_url "http://127.0.0.1:${doris_sql_converter_port:-5001}/api/v1/convert"
fi
if ! check_doris_ready; then exit 1; fi
echo "#### 5. set session variables"
if ! reset_doris_session_variables; then exit 1; fi
session_variables_file="${teamcity_build_checkoutDir}/regression-test/pipeline/cloud_p0/conf/session_variables.sql"
echo -e "\n\ntuned session variables:\n$(cat "${session_variables_file}")\n\n"
set_doris_session_variables_from_file "${session_variables_file}"
# record session variables
set +x
show_session_variables &>"${DORIS_HOME}"/session_variables
)
exit_flag="$?"
echo "#### 5. check if need backup doris logs"
if [[ ${exit_flag} != "0" ]]; then
stop_doris
print_doris_fe_log
print_doris_be_log
if file_name=$(archive_doris_logs "${pr_num_from_trigger}_${commit_id_from_trigger}_$(date +%Y%m%d%H%M%S)_doris_logs.tar.gz"); then
upload_doris_log_to_oss "${file_name}"
fi
fi
exit "${exit_flag}"
#####################################################################################