You've already forked devscripts
mirror of
https://github.com/DoublesunRUS/devscripts.git
synced 2026-06-11 22:46:51 +02:00
Интеграция / Развертывание
This commit is contained in:
+73
-59
@@ -44,9 +44,6 @@
|
||||
;
|
||||
|
||||
метод СобратьПоследнийРелиз()
|
||||
знч SCRIPTS = СредаИсполнения.ПолучитьПеременную("SCRIPTS")
|
||||
знч настройки = ПрочитатьФайлНастроек("%SCRIPTS/../GitLab-CI")
|
||||
|
||||
знч WP = СредаИсполнения.ПолучитьПеременную("WP")
|
||||
|
||||
знч CI_JOB_ID = СредаИсполнения.ПолучитьПеременную("CI_JOB_ID")
|
||||
@@ -54,36 +51,41 @@
|
||||
знч CI_PROJECT_DIR = СредаИсполнения.ПолучитьПеременную("CI_PROJECT_DIR")
|
||||
знч CI_PROJECT_ID = СредаИсполнения.ПолучитьПеременную("CI_PROJECT_ID")
|
||||
знч CI_PROJECT_PATH = СредаИсполнения.ПолучитьПеременную("CI_PROJECT_PATH")
|
||||
знч CI_PROJECT_ROOT_NAMESPACE = СредаИсполнения.ПолучитьПеременную("CI_PROJECT_ROOT_NAMESPACE")
|
||||
знч CI_PROJECT_NAMESPACE = СредаИсполнения.ПолучитьПеременную("CI_PROJECT_NAMESPACE")
|
||||
знч CI_SERVER_HOST = СредаИсполнения.ПолучитьПеременную("CI_SERVER_HOST")
|
||||
|
||||
знч RELEASES_TOKEN = СредаИсполнения.ПолучитьПеременную("RELEASES_TOKEN")
|
||||
|
||||
пер ошибкиТокенов = ""
|
||||
если RELEASES_TOKEN.Пусто()
|
||||
знч текстОшибки = "В переменную RELEASES_TOKEN необходимо поместить api token репозитория Релизов."
|
||||
выбросить новый ИсключениеНедопустимоеСостояние(текстОшибки)
|
||||
ошибкиТокенов += "В переменную RELEASES_TOKEN необходимо поместить api token репозитория Релизов." + Символы
|
||||
.НоваяСтрока
|
||||
;
|
||||
|
||||
знч настройки = ПрочитатьФайлНастроек("%CI_PROJECT_DIR")
|
||||
|
||||
если СредаИсполнения.ПолучитьПеременную(настройки.Конфигурация.ПеременнаяТокена).Пусто()
|
||||
знч текстОшибки = "В переменную %{настройки.Конфигурация
|
||||
.ПеременнаяТокена} необходимо поместить read api token репозитория %{настройки.Конфигурация.Имя}."
|
||||
выбросить новый ИсключениеНедопустимоеСостояние(текстОшибки)
|
||||
ошибкиТокенов += "В переменную %{настройки.Конфигурация
|
||||
.ПеременнаяТокена} необходимо поместить read api token репозитория %{настройки.Конфигурация.Имя}." + Символы
|
||||
.НоваяСтрока
|
||||
;
|
||||
для репозиторийРасширения из настройки.ПрикладныеРасширения
|
||||
если СредаИсполнения.ПолучитьПеременную(репозиторийРасширения.ПеременнаяТокена).Пусто()
|
||||
знч текстОшибки = "В переменную %{репозиторийРасширения.ПеременнаяТокена} необходимо поместить read api token репозитория %{репозиторийРасширения
|
||||
.Имя}."
|
||||
выбросить новый ИсключениеНедопустимоеСостояние(текстОшибки)
|
||||
ошибкиТокенов += "В переменную %{репозиторийРасширения.ПеременнаяТокена} необходимо поместить read api token репозитория %{репозиторийРасширения
|
||||
.Имя}." + Символы.НоваяСтрока
|
||||
;
|
||||
;
|
||||
для репозиторийРасширения из настройки.ТестовыеРасширения
|
||||
если СредаИсполнения.ПолучитьПеременную(репозиторийРасширения.ПеременнаяТокена).Пусто()
|
||||
знч текстОшибки = "В переменную %{репозиторийРасширения.ПеременнаяТокена} необходимо поместить read api token репозитория %{репозиторийРасширения
|
||||
.Имя}."
|
||||
выбросить новый ИсключениеНедопустимоеСостояние(текстОшибки)
|
||||
ошибкиТокенов += "В переменную %{репозиторийРасширения.ПеременнаяТокена} необходимо поместить read api token репозитория %{репозиторийРасширения
|
||||
.Имя}." + Символы.НоваяСтрока
|
||||
;
|
||||
;
|
||||
|
||||
если не ошибкиТокенов.Пусто()
|
||||
выбросить новый ИсключениеНедопустимоеСостояние(ошибкиТокенов)
|
||||
;
|
||||
|
||||
знч полныйПутьПрикладнойСборки = "%CI_PROJECT_DIR/%ИМЯ_КАТАЛОГА_ПРИКЛАДНОЙ_СБОРКИ"
|
||||
знч полныйПутьТестовойСборки = "%CI_PROJECT_DIR/%ИМЯ_КАТАЛОГА_ТЕСТОВОЙ_СБОРКИ"
|
||||
|
||||
@@ -98,7 +100,7 @@
|
||||
Файлы.СоздатьКаталог(полныйПутьСлужебнойСборки)
|
||||
|
||||
знч адресРепозиторияКонфигурации =
|
||||
"https://gitlab-ci-token:%CI_JOB_TOKEN@%CI_SERVER_HOST/%CI_PROJECT_ROOT_NAMESPACE/%{настройки.Конфигурация
|
||||
"https://gitlab-ci-token:%CI_JOB_TOKEN@%CI_SERVER_HOST/%CI_PROJECT_NAMESPACE/%{настройки.Конфигурация
|
||||
.Имя}.git"
|
||||
Консоль.Записать("Git_Clone: %адресРепозиторияКонфигурации %{настройки.Конфигурация.Ветка}")
|
||||
Git_Clone(адресРепозиторияКонфигурации, настройки.Конфигурация.Ветка)
|
||||
@@ -223,11 +225,14 @@
|
||||
|
||||
для репозиторий из репозиторииДляПересборки
|
||||
знч адресРепозитория =
|
||||
"https://gitlab-ci-token:%CI_JOB_TOKEN@%CI_SERVER_HOST/%CI_PROJECT_ROOT_NAMESPACE/%{репозиторий.Имя}.git"
|
||||
"https://gitlab-ci-token:%CI_JOB_TOKEN@%CI_SERVER_HOST/%CI_PROJECT_NAMESPACE/%{репозиторий.Имя}.git"
|
||||
Консоль.Записать("Git_Clone: %адресРепозитория %{репозиторий.Ветка}")
|
||||
Git_Clone(адресРепозитория, репозиторий.Ветка)
|
||||
|
||||
знч путьРасширенияЕДТ = "%CI_PROJECT_DIR/%{репозиторий.Имя}/%{репозиторий.Проект}"
|
||||
пер путьРасширенияЕДТ = "%CI_PROJECT_DIR/%{репозиторий.Имя}/%{репозиторий.Проект}"
|
||||
если не (новый Файл(путьРасширенияЕДТ)).Существует()
|
||||
путьРасширенияЕДТ = "%CI_PROJECT_DIR/%{репозиторий.Имя}/%{настройки.Конфигурация.Проект}.%{репозиторий.Проект}"
|
||||
;
|
||||
знч путьРасширенияПлатформы = "%CI_PROJECT_DIR/temp/src_%{репозиторий.Имя}"
|
||||
Консоль.Записать("WorkspaceExport: %путьРасширенияЕДТ %путьРасширенияПлатформы %WP")
|
||||
WorkspaceExport(путьРасширенияЕДТ, путьРасширенияПлатформы, WP, ВЕРСИЯ_EDT)
|
||||
@@ -260,21 +265,25 @@
|
||||
;
|
||||
|
||||
метод ПротестироватьКод()
|
||||
знч SCRIPTS = СредаИсполнения.ПолучитьПеременную("SCRIPTS")
|
||||
знч настройки = ПрочитатьФайлНастроек("%SCRIPTS/../GitLab-CI")
|
||||
|
||||
знч WP = СредаИсполнения.ПолучитьПеременную("WP")
|
||||
|
||||
знч CI_JOB_TOKEN = СредаИсполнения.ПолучитьПеременную("CI_JOB_TOKEN")
|
||||
знч CI_PROJECT_DIR = СредаИсполнения.ПолучитьПеременную("CI_PROJECT_DIR")
|
||||
знч CI_PROJECT_ROOT_NAMESPACE = СредаИсполнения.ПолучитьПеременную("CI_PROJECT_ROOT_NAMESPACE")
|
||||
знч CI_PROJECT_NAMESPACE = СредаИсполнения.ПолучитьПеременную("CI_PROJECT_NAMESPACE")
|
||||
знч CI_SERVER_HOST = СредаИсполнения.ПолучитьПеременную("CI_SERVER_HOST")
|
||||
|
||||
знч SONARQUBE_TOKEN = СредаИсполнения.ПолучитьПеременную("SONARQUBE_TOKEN")
|
||||
|
||||
если СредаИсполнения.ПолучитьПеременную("SONARQUBE_TOKEN").Пусто()
|
||||
знч текстОшибки = "В переменную SONARQUBE_TOKEN необходимо поместить token SonarQube."
|
||||
выбросить новый ИсключениеНедопустимоеСостояние(текстОшибки)
|
||||
знч настройки = ПрочитатьФайлНастроек("%CI_PROJECT_DIR")
|
||||
|
||||
пер ошибкиТокенов = ""
|
||||
|
||||
если не настройки.СерверSonarQube.Пусто() и СредаИсполнения.ПолучитьПеременную("SONARQUBE_TOKEN").Пусто()
|
||||
ошибкиТокенов += "В переменную SONARQUBE_TOKEN необходимо поместить token SonarQube." + Символы.НоваяСтрока
|
||||
;
|
||||
|
||||
если не ошибкиТокенов.Пусто()
|
||||
выбросить новый ИсключениеНедопустимоеСостояние(ошибкиТокенов)
|
||||
;
|
||||
|
||||
знч полныйПутьРезультатовТестов = "%CI_PROJECT_DIR/%ИМЯ_КАТАЛОГА_РЕЗУЛЬТАТОВ_ТЕСТОВ"
|
||||
@@ -283,7 +292,7 @@
|
||||
Файлы.СоздатьКаталог(полныйПутьРезультатовТестов)
|
||||
|
||||
знч адресРепозиторияКонфигурации =
|
||||
"https://gitlab-ci-token:%CI_JOB_TOKEN@%CI_SERVER_HOST/%CI_PROJECT_ROOT_NAMESPACE/%{настройки.Конфигурация
|
||||
"https://gitlab-ci-token:%CI_JOB_TOKEN@%CI_SERVER_HOST/%CI_PROJECT_NAMESPACE/%{настройки.Конфигурация
|
||||
.Имя}.git"
|
||||
Консоль.Записать("Git_Clone: %адресРепозиторияКонфигурации %{настройки.Конфигурация.Ветка}")
|
||||
Git_Clone(адресРепозиторияКонфигурации, настройки.Конфигурация.Ветка)
|
||||
@@ -293,53 +302,58 @@
|
||||
Консоль.Записать("WorkspaceValidate: %файлРезультатовВалидации %путьКонфигурацииЕДТ %WP")
|
||||
WorkspaceValidate(файлРезультатовВалидации, путьКонфигурацииЕДТ, WP, ВЕРСИЯ_EDT)
|
||||
|
||||
знч файлSonarQube = "%полныйПутьРезультатовТестов/%{настройки.Конфигурация.Имя}.json"
|
||||
Консоль.Записать("ПреобразоватьОшибкиВФорматSonarCube: %файлSonarQube %файлРезультатовВалидации")
|
||||
ПреобразоватьОшибкиВФорматSonarCube(файлSonarQube, файлРезультатовВалидации)
|
||||
если не настройки.СерверSonarQube.Пусто()
|
||||
знч файлSonarQube = "%полныйПутьРезультатовТестов/%{настройки.Конфигурация.Имя}.json"
|
||||
Консоль.Записать("ПреобразоватьОшибкиВФорматSonarCube: %файлSonarQube %файлРезультатовВалидации")
|
||||
ПреобразоватьОшибкиВФорматSonarCube(файлSonarQube, файлРезультатовВалидации)
|
||||
|
||||
знч файлПараметровСканера = "%CI_PROJECT_DIR/sonar-project-%{настройки.Конфигурация.Имя}.properties"
|
||||
знч ключПроекта = "%CI_PROJECT_ROOT_NAMESPACE-%{настройки.Конфигурация.Имя}"
|
||||
знч файлПараметровСканера = "%CI_PROJECT_DIR/sonar-project-%{настройки.Конфигурация.Имя}.properties"
|
||||
знч ключПроекта = "%CI_PROJECT_NAMESPACE-%{настройки.Конфигурация.Имя}"
|
||||
|
||||
знч тегРелиза = ДатаНовогоРелиза().Форматировать("гггг-ММ-дд")
|
||||
знч тегРелиза = ДатаНовогоРелиза().Форматировать("гггг-ММ-дд")
|
||||
|
||||
Консоль.Записать("СохранитьНастройкиСканера: %файлПараметровСканера %{настройки
|
||||
.СерверSonarQube} %ключПроекта %{настройки.Конфигурация
|
||||
.Проект} %тегРелиза %путьКонфигурацииЕДТ %файлSonarQube")
|
||||
СохранитьНастройкиСканера(файлПараметровСканера, настройки.СерверSonarQube, ключПроекта, настройки.Конфигурация
|
||||
.Проект, тегРелиза, путьКонфигурацииЕДТ, файлSonarQube)
|
||||
Консоль.Записать("СохранитьНастройкиСканера: %файлПараметровСканера %{настройки
|
||||
.СерверSonarQube} %ключПроекта %{настройки.Конфигурация
|
||||
.Проект} %тегРелиза %путьКонфигурацииЕДТ %файлSonarQube")
|
||||
СохранитьНастройкиСканера(файлПараметровСканера, настройки.СерверSonarQube, ключПроекта, настройки.Конфигурация
|
||||
.Проект, тегРелиза, путьКонфигурацииЕДТ, файлSonarQube)
|
||||
|
||||
Консоль.Записать("ЗапуститьSonarScanner: %файлПараметровСканера")
|
||||
ЗапуститьSonarScanner(файлПараметровСканера, SONARQUBE_TOKEN)
|
||||
Консоль.Записать("ЗапуститьSonarScanner: %файлПараметровСканера")
|
||||
ЗапуститьSonarScanner(файлПараметровСканера, SONARQUBE_TOKEN)
|
||||
;
|
||||
;
|
||||
|
||||
метод ПротестироватьИнтерфейс()
|
||||
знч SCRIPTS = СредаИсполнения.ПолучитьПеременную("SCRIPTS")
|
||||
знч настройки = ПрочитатьФайлНастроек("%SCRIPTS/../GitLab-CI")
|
||||
|
||||
знч CI_JOB_TOKEN = СредаИсполнения.ПолучитьПеременную("CI_JOB_TOKEN")
|
||||
знч CI_PROJECT_DIR = СредаИсполнения.ПолучитьПеременную("CI_PROJECT_DIR")
|
||||
знч CI_PROJECT_ROOT_NAMESPACE = СредаИсполнения.ПолучитьПеременную("CI_PROJECT_ROOT_NAMESPACE")
|
||||
знч CI_PROJECT_NAMESPACE = СредаИсполнения.ПолучитьПеременную("CI_PROJECT_NAMESPACE")
|
||||
знч CI_SERVER_HOST = СредаИсполнения.ПолучитьПеременную("CI_SERVER_HOST")
|
||||
|
||||
знч TMPLTS = СредаИсполнения.ПолучитьПеременную("TMPLTS")
|
||||
знч EPF_UTILS = СредаИсполнения.ПолучитьПеременную("EPF_UTILS")
|
||||
|
||||
пер ошибкиТокенов = ""
|
||||
|
||||
если TMPLTS.Пусто()
|
||||
знч текстОшибки = "В переменную TMPLTS необходимо поместить путь до каталогов с шаблонами баз."
|
||||
выбросить новый ИсключениеНедопустимоеСостояние(текстОшибки)
|
||||
ошибкиТокенов += "В переменную TMPLTS необходимо поместить путь до каталогов с шаблонами баз." + Символы.НоваяСтрока
|
||||
;
|
||||
|
||||
если EPF_UTILS.Пусто()
|
||||
знч текстОшибки = "В переменную EPF_UTILS необходимо поместить путь до служебных обработок."
|
||||
выбросить новый ИсключениеНедопустимоеСостояние(текстОшибки)
|
||||
ошибкиТокенов += "В переменную EPF_UTILS необходимо поместить путь до служебных обработок." + Символы.НоваяСтрока
|
||||
;
|
||||
|
||||
если не ошибкиТокенов.Пусто()
|
||||
выбросить новый ИсключениеНедопустимоеСостояние(ошибкиТокенов)
|
||||
;
|
||||
|
||||
знч настройки = ПрочитатьФайлНастроек("%CI_PROJECT_DIR")
|
||||
|
||||
знч полныйПутьПрикладнойСборки = "%CI_PROJECT_DIR/%ИМЯ_КАТАЛОГА_ПРИКЛАДНОЙ_СБОРКИ"
|
||||
знч полныйПутьТестовойСборки = "%CI_PROJECT_DIR/%ИМЯ_КАТАЛОГА_ТЕСТОВОЙ_СБОРКИ"
|
||||
знч путьИБ = Строки.Шаблон("$0/$1", [CI_PROJECT_DIR, "temp/db"])
|
||||
|
||||
знч адресРепозиторияКонфигурации =
|
||||
"https://gitlab-ci-token:%CI_JOB_TOKEN@%CI_SERVER_HOST/%CI_PROJECT_ROOT_NAMESPACE/%{настройки.Конфигурация
|
||||
"https://gitlab-ci-token:%CI_JOB_TOKEN@%CI_SERVER_HOST/%CI_PROJECT_NAMESPACE/%{настройки.Конфигурация
|
||||
.Имя}.git"
|
||||
Консоль.Записать("Git_Clone: %адресРепозиторияКонфигурации %{настройки.Конфигурация.Ветка}")
|
||||
Git_Clone(адресРепозиторияКонфигурации, настройки.Конфигурация.Ветка)
|
||||
@@ -367,37 +381,37 @@
|
||||
для репозиторий из настройки.ПрикладныеРасширения
|
||||
знч файлРасширения = "%полныйПутьПрикладнойСборки/%{репозиторий.Проект}.cfe"
|
||||
Консоль.Записать("LoadCfe: %файлРасширения %{репозиторий.Проект} %путьИБ %исполняемыйФайлПлатформы %{настройки.ИнформационнаяБаза
|
||||
.Пользователь}")
|
||||
.Пользователь}")
|
||||
LoadExt(файлРасширения, репозиторий.Проект, путьИБ, исполняемыйФайлПлатформы, настройки.ИнформационнаяБаза
|
||||
.Пользователь)
|
||||
|
||||
Консоль.Записать("UpdateDBExt: %{репозиторий.Проект} %путьИБ %исполняемыйФайлПлатформы %{настройки.ИнформационнаяБаза
|
||||
.Пользователь}")
|
||||
.Пользователь}")
|
||||
UpdateDBExt(репозиторий.Проект, путьИБ, исполняемыйФайлПлатформы, настройки.ИнформационнаяБаза.Пользователь)
|
||||
;
|
||||
|
||||
для репозиторий из настройки.ТестовыеРасширения
|
||||
знч файлРасширения = "%полныйПутьТестовойСборки/%{репозиторий.Проект}.cfe"
|
||||
Консоль.Записать("LoadCfe: %файлРасширения %{репозиторий.Проект} %путьИБ %исполняемыйФайлПлатформы %{настройки.ИнформационнаяБаза
|
||||
.Пользователь}")
|
||||
.Пользователь}")
|
||||
LoadExt(файлРасширения, репозиторий.Проект, путьИБ, исполняемыйФайлПлатформы, настройки.ИнформационнаяБаза
|
||||
.Пользователь)
|
||||
|
||||
Консоль.Записать("UpdateDBExt: %{репозиторий.Проект} %путьИБ %исполняемыйФайлПлатформы %{настройки.ИнформационнаяБаза
|
||||
.Пользователь}")
|
||||
.Пользователь}")
|
||||
UpdateDBExt(репозиторий.Проект, путьИБ, исполняемыйФайлПлатформы, настройки.ИнформационнаяБаза.Пользователь)
|
||||
;
|
||||
|
||||
Консоль.Записать("ExecuteCommand: %КОМАНДЫ_ОБНОВЛЕНИЯ_БД %путьИБ %исполняемыйФайлПлатформы %{настройки.ИнформационнаяБаза
|
||||
.Пользователь}")
|
||||
.Пользователь}")
|
||||
ExecuteCommand(КОМАНДЫ_ОБНОВЛЕНИЯ_БД, путьИБ, исполняемыйФайлПлатформы, настройки.ИнформационнаяБаза.Пользователь)
|
||||
|
||||
знч имяОбработкиОтключенияБезопасногоРежима = "%EPF_UTILS/ОтключитьБезопасныйРежимРасширений.epf"
|
||||
Консоль.Записать(
|
||||
"ExecuteDataProcessor: %имяОбработкиОтключенияБезопасногоРежима %путьИБ %исполняемыйФайлПлатформы %{настройки.ИнформационнаяБаза
|
||||
.Пользователь}")
|
||||
ExecuteDataProcessor(имяОбработкиОтключенияБезопасногоРежима, "", путьИБ, исполняемыйФайлПлатформы, настройки
|
||||
.ИнформационнаяБаза.Пользователь)
|
||||
.Пользователь}")
|
||||
ExecuteDataProcessor(имяОбработкиОтключенияБезопасногоРежима, "", путьИБ, исполняемыйФайлПлатформы, настройки.ИнформационнаяБаза
|
||||
.Пользователь)
|
||||
|
||||
знч имяОбработкиVA = "%EPF_UTILS/vanessa-automation-single.epf"
|
||||
знч параметрыОбработкиVA = "StartFeaturePlayer;WorkspaceRoot=${CI_PROJECT_DIR};VBParams=VBParams.json"
|
||||
@@ -423,12 +437,12 @@
|
||||
|
||||
метод ПроверитьКоммитыРепозиторияДляПоследнегоРелиза(репозиторий: ОписаниеРепозитория,
|
||||
датаПоследнегоРелиза: ДатаВремя): ДатаВремя|Неопределено
|
||||
знч CI_PROJECT_ROOT_NAMESPACE = СредаИсполнения.ПолучитьПеременную("CI_PROJECT_ROOT_NAMESPACE")
|
||||
знч CI_PROJECT_NAMESPACE = СредаИсполнения.ПолучитьПеременную("CI_PROJECT_NAMESPACE")
|
||||
знч CI_SERVER_HOST = СредаИсполнения.ПолучитьПеременную("CI_SERVER_HOST")
|
||||
|
||||
знч токен = СредаИсполнения.ПолучитьПеременную(репозиторий.ПеременнаяТокена)
|
||||
|
||||
знч имяПроекта = "%CI_PROJECT_ROOT_NAMESPACE/%{репозиторий.Имя}"
|
||||
знч имяПроекта = "%CI_PROJECT_NAMESPACE/%{репозиторий.Имя}"
|
||||
пер коммиты = новый Массив()
|
||||
если датаПоследнегоРелиза == новый ДатаВремя(1, 1, 1)
|
||||
Консоль.Записать("Commits_List: %{репозиторий.Ветка} %имяПроекта %CI_SERVER_HOST")
|
||||
@@ -628,7 +642,7 @@
|
||||
знч путьКПлатформе = установленныеПлатформы.Получить(версияПлатформы)
|
||||
возврат "%путьКПлатформе/bin/1cv8"
|
||||
;
|
||||
|
||||
|
||||
знч максимальныеПлатформы = МаксимальныеПлатформы()
|
||||
если максимальныеПлатформы.СодержитКлюч(версияПлатформы)
|
||||
знч путьКПлатформе = максимальныеПлатформы.Получить(версияПлатформы)
|
||||
|
||||
Reference in New Issue
Block a user