-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeploy
More file actions
115 lines (106 loc) · 4.34 KB
/
deploy
File metadata and controls
115 lines (106 loc) · 4.34 KB
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
TOOLS_PATH="${DIR}/.."
#if short option is not available - https://gist.github.com/dciccale/5560837
CURRENT_BRANCH="$(git symbolic-ref --short HEAD)"
# настройка миграций, путь до файла миграций относительно относительно папки с запускаемым файлом
MIGRATE_PATH="migrate"
MIGRATE_MODULE_NAME="sprint.migration"
# Подключаем файл настроек
if [[ -f "${TOOLS_PATH}/deploy_settings/base.ini" ]]; then
. ${TOOLS_PATH}/deploy_settings/base.ini
if [[ -f "${TOOLS_PATH}/deploy_settings/${ENV_TYPE}.ini" ]]; then
. ${TOOLS_PATH}/deploy_settings/${ENV_TYPE}.ini
else
echo "Файл настроек для зоны не найден"
exit 25
fi
else
echo "Файл настроек не найден"
exit 25
fi
PROJECT_PATH_FULL="${DIR}/${PROJECT_PATH}"
# Проверка веток, если отличаются предупреждаем
if [[ "${CURRENT_BRANCH}" != "${GIT_BRANCH}" ]]; then
echo "Текущая ветка отлична от установленной. установленная - ${GIT_BRANCH}, текущая - ${CURRENT_BRANCH}";
# Проверяем разрешено ли продолжать работу
if [[ "${CONTINUE_DIFFERENCE}" != "Y" ]]; then
exit 25;
else
GIT_BRANCH="${CURRENT_BRANCH}";
fi
fi
# подключаем телеграм чат
#. ./lib/telegram
cd ${PROJECT_PATH_FULL}
STATUS=$(git status --short)
if [[ -n "${STATUS}" ]]; then
echo "Есть незакомиченные изменния"
exit 25
fi
# проверить изменения и закоммитить их если они есть
# send_telegram_message "начато обновление зоны ${ENV_TYPE}";
echo "Получение изменений из git"
git pull -q -v --ff --no-edit origin ${GIT_BRANCH}
git push origin ${GIT_BRANCH}
# сделать проверку на ошибки из гита
if [[ -f ".gitmodules" ]]; then
git submodule update
if [[ ! -n ${SUB_BRANCH} ]]; then
SUB_BRANCH="master"
fi;
if [[ -n ${SUB_BRANCH} ]]; then
git submodule foreach "git checkout ${SUB_BRANCH} && git pull -q -v --ff --no-edit origin ${SUB_BRANCH} && git push origin ${SUB_BRANCH}"
fi
# сделать проверку на ошибки из гита
fi
echo "Изменения из git получены"
echo "======"
cd ./${COMPOSER_DIRECTORY}
if [[ ! -f "composer.phar" ]]; then
echo "не найден файл composer"
echo "======"
exit 25
fi
if [[ -f "composer.phar" && -f "composer.json" ]]; then
echo "начало установки пакетов из composer"
if [[ "${ENV_TYPE}" = "dev" ]]; then
STATUS=$(${PHP_PATH} -d memory_limit=512M composer.phar install)
else
STATUS=$(${PHP_PATH} -d memory_limit=512M composer.phar install --no-dev)
fi
if [[ ${STATUS} =~ "error" ]]; then
echo "${STATUS}"
echo "Ошибка при установке композера"
exit 25
fi
# добавить проверку на ошибки
echo "Установка пакетов из composer завершена"
echo "======"
fi
cd ${DIR}
MIGRATE_FILE="${DIR}/${MIGRATE_PATH}"
LOCAL_MIGRATE_MODULE="${PROJECT_PATH_FULL}/local/modules/${MIGRATE_MODULE_NAME}"
BITRIX_MIGRATE_MODULE="${PROJECT_PATH_FULL}/bitrix/modules/${MIGRATE_MODULE_NAME}"
if [[ -f "${MIGRATE_FILE}" ]] && ( [[ -d "${LOCAL_MIGRATE_MODULE}" ]] || [[ -d "${BITRIX_MIGRATE_MODULE}" ]] ); then
echo "начало миграций"
STATUS=$(${PHP_PATH} ${MIGRATE_PATH} ${PROJECT_PATH_FULL})
if [[ ${STATUS} =~ "error" ]]; then
echo "${STATUS}"
echo "Ошибка при установке миграций"
exit 25
fi
# добавить проверку на ошибки
echo "Миграции установлены"
echo "======"
fi
if [[ "${ENV_TYPE}" = "prod" ]]; then
if [[ "${DEL_BRANCH}" = "Y" ]]; then
git branch -d ${GIT_BRANCH}
git push origin --delete ${GIT_BRANCH}
fi
git remote prune origin
echo "Очистка git завершена"
echo "======"
fi
#send_telegram_message "обновление зоны ${ENV_TYPE} завершено успешно";