diff --git a/GitLab-CI/.gitlab-ci-mergeRequest.yml b/GitLab-CI/.gitlab-ci-mergeRequest.yml index 73980f4..22cbf33 100644 --- a/GitLab-CI/.gitlab-ci-mergeRequest.yml +++ b/GitLab-CI/.gitlab-ci-mergeRequest.yml @@ -12,7 +12,7 @@ variables: buildMR: stage: build tags: - - edt + - 1c-edt only: - merge_requests script: @@ -30,7 +30,7 @@ buildMR: testCore: stage: test tags: - - edt + - 1c-edt only: - merge_requests dependencies: @@ -48,7 +48,7 @@ testCore: testUI: stage: test tags: - - edt + - 1c-ui only: - merge_requests dependencies: @@ -62,15 +62,11 @@ testUI: paths: - test/ - ci/ - - public/ - environment: - name: allure - url: https://${CI_SERVER_HOST}/${CI_PROJECT_PATH}/-/jobs/${CI_JOB_ID}/artifacts/file/public/index.html pages: stage: report tags: - - edt + - 1c-edt only: - merge_requests dependencies: @@ -81,3 +77,6 @@ pages: paths: - ci/ - public/ + environment: + name: allure + url: https://${CI_SERVER_HOST}/${CI_PROJECT_PATH}/-/jobs/${CI_JOB_ID}/artifacts/file/public/index.html \ No newline at end of file diff --git a/GitLab-CI/.gitlab-ci-release.yml b/GitLab-CI/.gitlab-ci-release.yml index 34ac808..25cdf37 100644 --- a/GitLab-CI/.gitlab-ci-release.yml +++ b/GitLab-CI/.gitlab-ci-release.yml @@ -13,7 +13,7 @@ variables: build: stage: build tags: - - edt + - 1c-edt only: - schedules script: @@ -31,7 +31,7 @@ build: testCore: stage: test tags: - - edt + - 1c-edt only: - schedules dependencies: @@ -49,7 +49,7 @@ testCore: testUI: stage: test tags: - - edt + - 1c-ui only: - schedules dependencies: @@ -63,15 +63,11 @@ testUI: paths: - test/ - ci/ - - public/ - environment: - name: allure - url: https://${CI_SERVER_HOST}/${CI_PROJECT_PATH}/-/jobs/${CI_JOB_ID}/artifacts/file/public/index.html pages: stage: report tags: - - edt + - 1c-edt only: - schedules dependencies: @@ -82,11 +78,14 @@ pages: paths: - ci/ - public/ + environment: + name: allure + url: https://${CI_SERVER_HOST}/${CI_PROJECT_PATH}/-/jobs/${CI_JOB_ID}/artifacts/file/public/index.html release: stage: release tags: - - edt + - 1c-edt only: - schedules dependencies: @@ -94,4 +93,4 @@ release: - testUI - pages script: - - executor_j11 -s $env:CI_SCRIPTS/1cicd.sbsl release + - executor_j11 -s $env:CI_SCRIPTS/1cicd.sbsl release \ No newline at end of file diff --git a/Скрипты/1cicd.sbsl b/Скрипты/1cicd.sbsl index 67aa3aa..46930be 100644 --- a/Скрипты/1cicd.sbsl +++ b/Скрипты/1cicd.sbsl @@ -1,7 +1,7 @@ #!/usr/bin/executor /******************************************************************************* - * Copyright (c) 2020 Alexander Kapralov and Contributors + * Copyright (c) 2021 Alexander Kapralov and Contributors * This program and the accompanying materials are made available under * the terms of the BSD 3-Clause License which is available at * https://spdx.org/licenses/BSD-3-Clause.html#licenseText @@ -658,21 +658,24 @@ пер ДелатьЛогВыполненияСценариевВТекстовыйФайл: Булево = Ложь пер ДелатьЛогОшибокВТекстовыйФайл: Булево = Ложь пер ВыводитьЛогВКонсоль: Булево = Ложь - пер ВыводитьВЛогВыполнениеШагов: Булево = Истина + пер ПодробныйЛогВыполненияСценариев: Булево = Истина + пер ВыводитьВЛогВыполнениеШагов: Булево = Истина + + пер ВыгружатьСтатусВыполненияСценариевВФайл: Булево = Истина + пер ПутьКФайлуДляВыгрузкиСтатусаВыполненияСценариев: Строка = "" + пер СобиратьДанныеОСостоянииАктивнойФормыПриОшибке: Булево = Ложь пер СобиратьДанныеОСостоянииВсехФормПриОшибке: Булево = Ложь пер СобиратьДанныеОСетевыхСоединениях: Булево = Ложь пер СобиратьДанныеОПроцессахОС: Булево = Ложь - пер ВыгружатьСтатусВыполненияСценариевВФайл: Булево = Истина - пер ПутьКФайлуДляВыгрузкиСтатусаВыполненияСценариев: Строка = "" пер ИспользоватьКомпонентуVanessaExt: Булево = Истина пер ТихаяУстановкаVanessaExt: Булево = Ложь пер ИспользоватьВнешнююКомпонентуДляСкриншотов: Булево = Истина - пер СпособСнятияСкриншотовВнешнейКомпонентой: Число = 2 // VAParamsСпособыСнятияСкриншотовВнешнейКомпонентой + пер СпособСнятияСкриншотовВнешнейКомпонентой: Число = 1 // VAParamsСпособыСнятияСкриншотовВнешнейКомпонентой пер ДелатьСкриншотПриВозникновенииОшибки: Булево = Истина - пер СниматьСкриншотКаждогоОкна1С: Булево = Ложь + пер СниматьСкриншотКаждогоОкна1С: Булево = Истина пер КаталогВыгрузкиСкриншотов: Строка = "" пер ВыполнениеСценариев: VAParamsВыполнениеСценариев @@ -827,13 +830,13 @@ Консоль.Записать("ExecuteDataProcessor: %имяОбработкиЗапретитьРаботуСВнешнимиРесурсами %путьИБ %исполняемыйФайлПлатформы %{настройкиАвтофич.ТестоваяБаза .ИмяПользователя}") ExecuteDataProcessor(имяОбработкиЗапретитьРаботуСВнешнимиРесурсами, "", путьИБ, исполняемыйФайлПлатформы, настройкиАвтофич.ТестоваяБаза - .ИмяПользователя) + .ИмяПользователя, "", 120с) знч имяОбработкиОтключитьБезопасныйРежимРасширений = "%CI_EPFS/ОтключитьБезопасныйРежимРасширений.epf" Консоль.Записать("ExecuteDataProcessor: %имяОбработкиОтключитьБезопасныйРежимРасширений %путьИБ %исполняемыйФайлПлатформы %{настройкиАвтофич.ТестоваяБаза .ИмяПользователя}") ExecuteDataProcessor(имяОбработкиОтключитьБезопасныйРежимРасширений, "", путьИБ, исполняемыйФайлПлатформы, настройкиАвтофич.ТестоваяБаза - .ИмяПользователя) + .ИмяПользователя, "", 120с) Консоль.Записать("ExecuteCommand: %КОМАНДЫ_ОБНОВЛЕНИЯ_БД %путьИБ %исполняемыйФайлПлатформы %{настройкиАвтофич.ТестоваяБаза .ИмяПользователя}") @@ -845,7 +848,7 @@ Консоль.Записать("ExecuteDataProcessor: %имяФайлаVA %параметрыVA %путьИБ %исполняемыйФайлПлатформы %{настройкиАвтофич.ТестоваяБаза .ИмяПользователя}") ExecuteDataProcessor(имяФайлаVA, параметрыVA, путьИБ, исполняемыйФайлПлатформы, настройкиАвтофич.ТестоваяБаза - .ИмяПользователя) + .ИмяПользователя, "", 120с) Консоль.Записать("СоздатьФичи: %{репозиторийСценарныхТестов.Имя}") СоздатьФичи(настройкиАвтофич, репозиторийСценарныхТестов.Имя) @@ -961,7 +964,7 @@ знч имяОбработкиЗапретитьРаботуСВнешнимиРесурсами = "%CI_EPFS/ЗапретитьРаботуСВнешнимиРесурсами.epf" Консоль.Записать("ExecuteDataProcessor: %имяОбработкиЗапретитьРаботуСВнешнимиРесурсами %{временныйКаталогИБ.Путь} %исполняемыйФайлПлатформы %{настройки.ТестоваяБаза.ИмяПользователя}") ExecuteDataProcessor(имяОбработкиЗапретитьРаботуСВнешнимиРесурсами, "", временныйКаталогИБ.Путь, исполняемыйФайлПлатформы, настройки.ТестоваяБаза.ИмяПользователя, настройки.ТестоваяБаза - .ПарольПользователя) + .ПарольПользователя, 120с) знч каталогФич = "%каталогПроекта/features/%{пользователь.Представление}" @@ -1033,8 +1036,6 @@ Файлы.Скопировать("%временныйКаталогИБ/junit/junit.xml", "%полныйПутьРезультатовТестов/junit/junit-%индекс.xml") индекс += 1 ; - - AllureGenerate(настройки) ; метод ExecuteDataProcessorTestManager(имяВнешнейОбработки: Строка, вспомогательныеПараметры: Строка, путьКИБ: Строка, имяФайлаПлатформы: Строка, @@ -1172,8 +1173,25 @@ метод ОпубликоватьОтчет() знч CI_JOB_ID = СредаИсполнения.ПолучитьПеременную("CI_JOB_ID") + знч CI_JOB_TOKEN = СредаИсполнения.ПолучитьПеременную("CI_JOB_TOKEN") + знч CI_PROJECT_DIR = СредаИсполнения.ПолучитьПеременную("CI_PROJECT_DIR") + знч CI_PROJECT_NAMESPACE = СредаИсполнения.ПолучитьПеременную("CI_PROJECT_NAMESPACE") знч CI_PROJECT_PATH = СредаИсполнения.ПолучитьПеременную("CI_PROJECT_PATH") + знч CI_SERVER_HOST = СредаИсполнения.ПолучитьПеременную("CI_SERVER_HOST") + знч настройки = ПрочитатьНастройкиСборки("%CI_PROJECT_DIR") + + для репозиторийСценарныхТестов из настройки.СценарныеТесты + знч адресРепозиторияТестов = "https://gitlab-ci-token:%CI_JOB_TOKEN@%CI_SERVER_HOST/%CI_PROJECT_NAMESPACE/%{репозиторийСценарныхТестов + .Имя}.git" + Консоль.Записать("Git_Clone: %адресРепозиторияТестов %{репозиторийСценарныхТестов.Ветка}") + Git_Clone(адресРепозиторияТестов, репозиторийСценарныхТестов.Ветка) + + знч настройкиАвтофич = ПрочитатьНастройкиАвтофич("%CI_PROJECT_DIR/%{репозиторийСценарныхТестов.Имя}/auto_features/AFParams.json") + + AllureGenerate(настройкиАвтофич) + ; + пер списокДвоичныхФайлов = новый Массив() списокДвоичныхФайлов.Добавить("/public/index.html") знч имяФайлаАссетов = "%ИМЯ_КАТАЛОГА_СЛУЖЕБНОЙ_СБОРКИ/assets_pages.json" @@ -1845,7 +1863,7 @@ ; метод ExecuteDataProcessor(имяВнешнейОбработки: Строка, вспомогательныеПараметры: Строка, путьКИБ: Строка, имяФайлаПлатформы: Строка, - имяПользователя: Строка = "", пароль: Строка = "") + имяПользователя: Строка = "", пароль: Строка = "", таймаут: Длительность = 0с) пер параметрыПроцесса = новый Массив() параметрыПроцесса.Добавить("ENTERPRISE") параметрыПроцесса.Добавить("/Execute") @@ -1866,7 +1884,7 @@ параметрыПроцесса.Добавить(пароль) ; - ВыполнитьКомандуПлатформыСОжиданием(имяФайлаПлатформы + "c", параметрыПроцесса) + ВыполнитьКомандуПлатформыСОжиданием(имяФайлаПлатформы + "c", параметрыПроцесса, таймаут) Консоль.Записать("Обработка выполнена.") ; @@ -1878,7 +1896,7 @@ возврат "UTF-8" ; -метод ВыполнитьКомандуПлатформыСОжиданием(имяКоманды: Строка, параметры: Массив, выводитьОшибки: Булево = Истина) +метод ВыполнитьКомандуПлатформыСОжиданием(имяКоманды: Строка, параметры: Массив, таймаут: Длительность = 0с) знч временныйФайлЛогов = Файлы.СоздатьВременныйФайл() параметры.Добавить("/Out") @@ -1889,7 +1907,14 @@ пер процесс = новый ПроцессОс(имяКоманды, параметры) процесс.Запустить() + пер времяОжидания = 0с пока не процесс.ОжидатьЗавершения(60с) + если таймаут != 0с и таймаут <= времяОжидания + знч текстОшибки = "При выполнении команды платформы превышено время ожидания выполнения %таймаут" + выбросить новый ИсключениеНедопустимоеСостояние(текстОшибки) + ; + + времяОжидания += 60с ; знч кодВозврата = процесс.ПолучитьКодВозврата() @@ -1899,9 +1924,6 @@ ; пер текстОшибки = "Код возврата: %кодВозврата" - если не выводитьОшибки - выбросить новый ИсключениеНедопустимоеСостояние(текстОшибки) - ; текстОшибки += Строки.Шаблон("\в\нКоманда: $0\в\нПараметры: $1", [имяКоманды, Строки.Соединить(параметры, " ")])