debian-mirror-gitlab/scripts/utils.sh

101 lines
2.2 KiB
Bash
Raw Normal View History

2019-07-31 22:56:46 +05:30
function retry() {
2020-06-23 00:09:42 +05:30
if eval "$@"; then
return 0
fi
for i in 2 1; do
sleep 3s
echo "Retrying $i..."
2017-08-17 22:00:37 +05:30
if eval "$@"; then
2020-06-23 00:09:42 +05:30
return 0
2017-08-17 22:00:37 +05:30
fi
2020-06-23 00:09:42 +05:30
done
return 1
2017-08-17 22:00:37 +05:30
}
2018-11-08 19:23:39 +05:30
2019-07-31 22:56:46 +05:30
function setup_db_user_only() {
2020-06-23 00:09:42 +05:30
source scripts/create_postgres_user.sh
2018-11-08 19:23:39 +05:30
}
2019-07-31 22:56:46 +05:30
function setup_db() {
2020-06-23 00:09:42 +05:30
run_timed_command "setup_db_user_only"
run_timed_command "bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee"
2018-11-08 19:23:39 +05:30
}
2019-07-31 22:56:46 +05:30
function install_api_client_dependencies_with_apk() {
apk add --update openssl curl jq
}
function install_api_client_dependencies_with_apt() {
apt update && apt install jq -y
}
function install_gitlab_gem() {
2021-01-29 00:20:46 +05:30
gem install httparty --no-document --version 0.18.1
gem install gitlab --no-document --version 4.14.1
2019-07-31 22:56:46 +05:30
}
2020-11-24 15:15:51 +05:30
function install_tff_gem() {
2021-02-22 17:27:13 +05:30
gem install test_file_finder --version 0.1.1
2020-11-24 15:15:51 +05:30
}
2020-05-24 23:13:21 +05:30
function run_timed_command() {
local cmd="${1}"
local start=$(date +%s)
echosuccess "\$ ${cmd}"
eval "${cmd}"
local ret=$?
local end=$(date +%s)
local runtime=$((end-start))
if [[ $ret -eq 0 ]]; then
echosuccess "==> '${cmd}' succeeded in ${runtime} seconds."
return 0
else
echoerr "==> '${cmd}' failed (${ret}) in ${runtime} seconds."
return $ret
fi
}
2019-07-31 22:56:46 +05:30
function echoerr() {
local header="${2}"
if [ -n "${header}" ]; then
printf "\n\033[0;31m** %s **\n\033[0m" "${1}" >&2;
else
printf "\033[0;31m%s\n\033[0m" "${1}" >&2;
fi
}
function echoinfo() {
local header="${2}"
if [ -n "${header}" ]; then
printf "\n\033[0;33m** %s **\n\033[0m" "${1}" >&2;
else
printf "\033[0;33m%s\n\033[0m" "${1}" >&2;
fi
}
2020-04-22 19:07:51 +05:30
2020-05-24 23:13:21 +05:30
function echosuccess() {
local header="${2}"
if [ -n "${header}" ]; then
printf "\n\033[0;32m** %s **\n\033[0m" "${1}" >&2;
else
printf "\033[0;32m%s\n\033[0m" "${1}" >&2;
fi
}
2020-11-24 15:15:51 +05:30
function fail_pipeline_early() {
local dont_interrupt_me_job_id
2021-02-22 17:27:13 +05:30
dont_interrupt_me_job_id=$(scripts/api/get_job_id --job-query "scope=success" --job-name "dont-interrupt-me")
2020-11-24 15:15:51 +05:30
if [[ -n "${dont_interrupt_me_job_id}" ]]; then
echoinfo "This pipeline cannot be interrupted due to \`dont-interrupt-me\` job ${dont_interrupt_me_job_id}"
else
echoinfo "Failing pipeline early for fast feedback due to test failures in rspec fail-fast."
2021-02-22 17:27:13 +05:30
scripts/api/cancel_pipeline
2020-11-24 15:15:51 +05:30
fi
}