# шаблон этапа StagesAndVariables stages: - StagesAndVariables - Lock - Copy - GetCF - FetchingAndConvert - Build - Update - UpdateDB - Unlock - OnFailureUnlock - FetchingAndConvertCQ - BuildCQ - TestCQ variables: # Переменные ниже должны быть определены на сервере сборки #W_PLATFORM_1C: 'C:\Program Files\1cv8\8.3.17.1549\bin\1cv8.exe' # Путь к запускаемому толстому клиенту Windows #L_PLATFORM_1C: '/opt/1C/v8.3/x86_64/1cv8' # Путь к запускаемому толстому клиенту Linux #W_PLATFORM_1C_tc: 'C:\Program Files\1cv8\8.3.17.1549\bin\1cv8c.exe' # Путь к запускаемому тонкому клиенту Windows #L_PLATFORM_1C_tc: '/opt/1C/v8.3/x86_64/1cv8c' # Путь к запускаемому тонкому клиенту Linux # Переменные ниже могут быть определены на сервере сборки #CI_DEBUG_TRACE: "true" # credintial MAIN_PROJECT: 'DemoAM' # CQT #W_APK_PLATFORM_1C: 'C:\Program Files\1cv8\8.3.17.1549\bin\1cv8.exe' # Путь к запускаемому толстому клиенту Windows - должна быть определена на сервере сборки APK_DATABASE: 'CHECK:1841\apk' FOLDER_APK_SETTINGS: 'G:\APK' FOLDER_APK_DATABASE: 'G:\APK\DBFORTEST' FOLDER_APK_DATABASEXML: 'G:\APK\DBFORTESTXML' USER_APK: 'admin' PASS_APK: '755955' # Индивидуальные задания этапа StagesAndVariables # Общие задания этапа StagesAndVariables # Единое задание для всех объектов сборки этапа # шаблон этапа Lock # Блокировка ИБ .job_template: &lock_job stage: Lock tags: - gui-command timeout: 15 minutes script: - chcp 65001 - echo %DATABASENAME% - IF NOT %CI_BUILD_REF_NAME% EQU %CI_DEFAULT_BRANCH% ( - echo start "" /wait "%W_PLATFORM_1C%" CREATEINFOBASE Srvr="%SERVER_1C%";Ref="%DATABASENAME%";DBMS="MSSQLServer";DBSrvr="%DBSERVER%";DB="%DATABASENAME%";DBUID="%DBUID%";DBPwd="%DBpwd%";SQLYOffs=2000;CrSQLDB=Y;SchJobDn=Y;LicDstr=Y /DisableStartupMessages /DisableStartupDialogs /DisableSplash > tmp.cmd - echo set IB_EXIST=%%errorlevel%% >> tmp.cmd - call tmp.cmd ) # Строку ниже использовать только для кастомизированных библиотек БСП до версии 3.1.5 - IF %LockVariant% NEQ SSL ( - start "" /wait "%W_PLATFORM_1C_tc%" ENTERPRISE /S %SERVER_1C%\%DATABASENAME% /N %USER_1C% /P %PASS_1C% /UC UpdateDB /DisableStartupMessages /C "ЗавершитьРаботуПользователей;;;%W_LOCK%;Блокировка установлена по причине обновления информационной базы;UpdateDB" ) ELSE ( - start "" /wait "%W_PLATFORM_1C_tc%" ENTERPRISE /S %SERVER_1C%\%DATABASENAME% /N %USER_1C% /P %PASS_1C% /UC UpdateDB /DisableStartupMessages /C "ЗавершитьРаботуПользователей, , , Сообщение=Блокировка установлена по причине обновления информационной базы, КодРазрешения=UpdateDB, ОжиданиеМин=%W_LOCK%" ) # Можно заменить для версии БСП выше 3.1.5 на: (второй вариант с конечной блокировкой в 60 минут) # - start "" /wait "%W_PLATFORM_1C_tc%" ENTERPRISE /S %SERVER_1C%\%DATABASENAME% /N %USER_1C% /P %PASS_1C% /UC UpdateDB /DisableStartupMessages /C "ЗавершитьРаботуПользователей, , , Сообщение=Блокировка установлена по причине обновления информационной базы, КодРазрешения=UpdateDB, ОжиданиеМин=%W_LOCK%, ДлительностьМин=60") # Конструкция dependencies: [] позволяет отключить загрузку артефактов сборки, если они не нужны. # При желании, можно настроить загрузку артефактов определеного задания, но для этого нужно полностью указать имя задания. # В текущей реализации этого пока сделать не получится, так как имена заданий формируются автоматичеси посредством # определения переменных шаблона, например, Lock_United: Определение происходит на самом последнем этапе, # и для этапе потребителя определить имя этапа источника, скорее всего не получится. dependencies: [] # Индивидуальные задания этапа Lock # Отдельное задание объекта сборки master этапа Lock Lock_DemoAM: <<: *lock_job variables: GIT_STRATEGY: none SERVER_1C: 'CHECK:1641' DATABASENAME: 'DemoAM' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' W_LOCK: '3' LockVariant: 'SSL' only: changes: - DemoAM/src/**/* refs: - master # Отдельное задание объекта сборки Tst/101 этапа Lock Lock_DAM.Tst.101: <<: *lock_job variables: GIT_STRATEGY: none SERVER_1C: 'CHECK:1641' DATABASENAME: 'DAM.Tst.101' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' DBSERVER: 'CHECK' DBUID: '1cusers' DBPwd: 'Si3fumez' W_LOCK: '5' LockVariant: 'STD' only: changes: - DemoAM/src/**/* refs: - Tst/101 variables: - $CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'schedule' # Отдельное задание объекта сборки dev/101 этапа Lock Lock_DAM.dev.101: <<: *lock_job variables: GIT_STRATEGY: none SERVER_1C: 'CHECK:1641' DATABASENAME: 'DAM.dev.101' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' DBSERVER: 'CHECK' DBUID: '1cusers' DBPwd: 'Si3fumez' W_LOCK: '1' LockVariant: 'STD' only: changes: - DemoAM/src/**/* refs: - dev/101 variables: - $CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'schedule' # Общие задания этапа Lock # Отдельное задание объекта сборки BF/00-00000004 этапа Lock Lock_DAM.BF.00-00000004: <<: *lock_job variables: GIT_STRATEGY: none SERVER_1C: 'CHECK:1641' DATABASENAME: 'DAM.BF.00-00000004' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' DBSERVER: 'CHECK' DBUID: '1cusers' DBPwd: 'Si3fumez' W_LOCK: '1' LockVariant: 'STD' only: changes: - DemoAM/src/**/* refs: - BF/00-00000004 # Отдельное задание объекта сборки TP/00-00000001 этапа Lock Lock_DAM.TP.00-00000001: <<: *lock_job variables: GIT_STRATEGY: none SERVER_1C: 'CHECK:1641' DATABASENAME: 'DAM.TP.00-00000001' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' DBSERVER: 'CHECK' DBUID: '1cusers' DBPwd: 'Si3fumez' W_LOCK: '1' LockVariant: 'STD' only: changes: - DemoAM/src/**/* refs: - TP/00-00000001 # Отдельное задание объекта сборки BF/00-00000007 этапа Lock Lock_DAM.BF.00-00000007: <<: *lock_job variables: GIT_STRATEGY: none SERVER_1C: 'CHECK:1641' DATABASENAME: 'DAM.BF.00-00000007' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' DBSERVER: 'CHECK' DBUID: '1cusers' DBPwd: 'Si3fumez' W_LOCK: '1' LockVariant: 'STD' only: changes: - DemoAM/src/**/* refs: - BF/00-00000007 # Отдельное задание объекта сборки BF/00-00000001 этапа Lock Lock_DAM.BF.00-00000001: <<: *lock_job variables: GIT_STRATEGY: none SERVER_1C: 'CHECK:1641' DATABASENAME: 'DAM.BF.00-00000001' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' DBSERVER: 'CHECK' DBUID: '1cusers' DBPwd: 'Si3fumez' W_LOCK: '1' LockVariant: 'STD' only: changes: - DemoAM/src/**/* refs: - BF/00-00000001 # шаблон этапа Copy # Копирование баз .job_template: © tags: - update retry: 1 script: - chcp 65001 - echo Начинаем создание архива, в случае ошибки на этапах с ключом -b выполнение задания будет прервано - sqlcmd -S %SourceServerName% -U %SourceUserName% -P %SourcePassword% -b -Q "BACKUP DATABASE [%SourceDBName%] TO DISK = N'\BK%CI_JOB_ID%.bak' WITH COMPRESSION, COPY_ONLY, FORMAT, INIT, NAME = N'%BackUpNameSet%' , SKIP, NOREWIND, NOUNLOAD, STATS = 10" - echo Устанавливаем монопольный режим для приемной базы, если она есть подавляем ошибки - sqlcmd -S %ServerName% -U %UserName% -P %Password% -Q "ALTER DATABASE [%DBName%] SET SINGLE_USER WITH ROLLBACK IMMEDIATE" - echo Удаляем приемную базу, если она есть - подавляем ошибки - sqlcmd -S %ServerName% -U %UserName% -P %Password% -Q "DROP DATABASE [%DBName%]" - echo Начинаем восстановление из архива - sqlcmd -S %ServerName% -U %UserName% -P %Password% -b -Q "RESTORE DATABASE [%DBName%] FROM DISK = N'\BK%CI_JOB_ID%.bak' WITH FILE = 1, MOVE N'%SourceLogicalDBName%' TO N'%FullPathMDFDeploy%', MOVE N'%SourceLogicalDBLogName%' TO N'%FullPathLDFDeploy%', NOUNLOAD, STATS = 5" - echo Устанавливаем многопользовательский режим - sqlcmd -S %ServerName% -U %UserName% -P %Password% -b -Q "ALTER DATABASE [%DBName%] SET MULTI_USER" - echo Устанавливаем простую модель восстановления - sqlcmd -S %ServerName% -U %UserName% -P %Password% -b -Q "ALTER DATABASE [%DBName%] SET RECOVERY SIMPLE" - echo Удаляем временный архив - sqlcmd -S %ServerName% -U %UserName% -P %Password% -o nul -b -Q "EXECUTE sp_configure 'show advanced options', 1; RECONFIGURE;EXECUTE sp_configure 'xp_cmdshell', 1; RECONFIGURE" - sqlcmd -S %ServerName% -U %UserName% -P %Password% -o nul -h -1 -b -Q "EXEC master..xp_cmdshell N'DEL \BK%CI_JOB_ID%.bak'" - sqlcmd -S %ServerName% -U %UserName% -P %Password% -o nul -b -Q "EXECUTE sp_configure 'xp_cmdshell', 0; RECONFIGURE;EXECUTE sp_configure 'show advanced options', 0; RECONFIGURE" dependencies: [] # Индивидуальные задания этапа Copy # Отдельное задание объекта сборки Tst/101 этапа Copy Copy_DAM.Tst.101: <<: *copy stage: Copy variables: GIT_STRATEGY: none RunThis: 'Yes' SourceServerName: 'CHECK' SourceUserName: '1cusers' SourcePassword: 'Si3fumez' SourceDBName: 'DAM.dev.101' BackUpNameSet: 'Full backup DAM.Tst.101' ServerName: 'CHECK' UserName: '1cusers' Password: 'Si3fumez' DBName: 'DAM.Tst.101' SourceLogicalDBName: 'CI_YML_TEST' FullPathMDFDeploy: 'G:\SQLData\DAM.Tst.101.mdf' SourceLogicalDBLogName: 'CI_YML_TEST_log' FullPathLDFDeploy: 'G:\SQLData\DAM.Tst.101_log.ldf' only: changes: - DemoAM/src/**/* refs: - Tst/101 variables: - $RunThis == 'Yes' && $CI_PIPELINE_SOURCE == 'web' || $RunThis == 'Yes' && $CI_PIPELINE_SOURCE == 'schedule' # Отдельное задание объекта сборки dev/101 этапа Copy Copy_DAM.dev.101: <<: *copy stage: Copy variables: GIT_STRATEGY: none # Переменная шаблона Yes определяется как: ?(Параметры.ИБ.ЗамещаетсяПриСборке,"Yes","No") в идеале бы вообще не включать текст задания, # однако в текущей реализации механизма это не возможно. RunThis: 'Yes' # текст пакетного задания абсолютно эквивалентен тексту в шаблоне задания .job_template: ©, приведен здесь тольок для того, чтобы показать разность подхода: # - в описании скрипта шаблона следует использовать переменные окружения, например, %SourceServerName% которые будут определены в секции variables задания, использующего шаблон: # variables : # SourceServerName: 'CHECK' # - при описании скрипта в теле самого задания переменные окружения можно не использовать, а можно сразу использовать переменные шаблона CHECK # Такой подход продиктован тем, что шаблон задания копируется единожды, а задания, использующие его формируются для каждой информационной базы отдельно. # задания одного этапа для разных ИБ формируются так, что могут отрабатывать параллельно. # !ВАЖНО! Секцию нельзя переопредилить в задании частично, она заменяется полностью. script: - chcp 65001 - echo Начинаем создание архива, в случае ошибки на этапах с ключом -b выполнение задания будет прервано - sqlcmd -S CHECK -U 1cusers -P Si3fumez -b -Q "BACKUP DATABASE [DemoAM] TO DISK = N'\\CHECK\SQL-Backup\BK%CI_JOB_ID%.bak' WITH COMPRESSION, COPY_ONLY, FORMAT, INIT, NAME = N'Full backup DAM.dev.101' , SKIP, NOREWIND, NOUNLOAD, STATS = 10" - echo Устанавливаем монопольный режим для приемной базы, если она есть подавляем ошибки - sqlcmd -S CHECK -U 1cusers -P Si3fumez -Q "ALTER DATABASE [DAM.dev.101] SET SINGLE_USER WITH ROLLBACK IMMEDIATE" - echo Удаляем приемную базу, если она есть - подавляем ошибки - sqlcmd -S CHECK -U 1cusers -P Si3fumez -Q "DROP DATABASE [DAM.dev.101]" - echo Начинаем восстановление из архива - sqlcmd -S CHECK -U 1cusers -P Si3fumez -b -Q "RESTORE DATABASE [DAM.dev.101] FROM DISK = N'\\CHECK\SQL-Backup\BK%CI_JOB_ID%.bak' WITH FILE = 1, MOVE N'CI_YML_TEST' TO N'G:\SQLData\DAM.dev.101.mdf', MOVE N'CI_YML_TEST_log' TO N'G:\SQLData\DAM.dev.101_log.ldf', NOUNLOAD, STATS = 5" - echo Устанавливаем многопользовательский режим - sqlcmd -S CHECK -U 1cusers -P Si3fumez -b -Q "ALTER DATABASE [DAM.dev.101] SET MULTI_USER" - echo Устанавливаем простую модель восстановления - sqlcmd -S CHECK -U 1cusers -P Si3fumez -b -Q "ALTER DATABASE [DAM.dev.101] SET RECOVERY SIMPLE" - echo Удаляем временный архив - sqlcmd -S CHECK -U 1cusers -P Si3fumez -o nul -b -Q "EXECUTE sp_configure 'show advanced options', 1; RECONFIGURE;EXECUTE sp_configure 'xp_cmdshell', 1; RECONFIGURE" - sqlcmd -S CHECK -U 1cusers -P Si3fumez -o nul -h -1 -b -Q "EXEC master..xp_cmdshell N'DEL \\CHECK\SQL-Backup\BK%CI_JOB_ID%.bak'" - sqlcmd -S CHECK -U 1cusers -P Si3fumez -o nul -b -Q "EXECUTE sp_configure 'xp_cmdshell', 0; RECONFIGURE;EXECUTE sp_configure 'show advanced options', 0; RECONFIGURE" only: changes: - DemoAM/src/**/* refs: - dev/101 variables: - $RunThis == 'Yes' && $CI_PIPELINE_SOURCE == 'web' || $RunThis == 'Yes' && $CI_PIPELINE_SOURCE == 'schedule' # Общие задания этапа Copy # Отдельное задание объекта сборки master этапа Copy Copy_DemoAM: <<: *copy stage: Copy variables: GIT_STRATEGY: none RunThis: 'No' SourceServerName: '' SourceUserName: '' SourcePassword: '' SourceDBName: '' BackUpNameSet: 'Full backup DemoAM' ServerName: 'CHECK' UserName: '1cusers' Password: 'Si3fumez' DBName: 'DemoAM' SourceLogicalDBName: 'CI_YML_TEST' FullPathMDFDeploy: 'G:\SQLData\DemoAM.mdf' SourceLogicalDBLogName: 'CI_YML_TEST_log' FullPathLDFDeploy: 'G:\SQLData\DemoAM_log.ldf' only: changes: - DemoAM/src/**/* refs: - master variables: - $RunThis == 'Yes' # Отдельное задание объекта сборки BF/00-00000004 этапа Copy Copy_DAM.BF.00-00000004: <<: *copy stage: Copy variables: GIT_STRATEGY: none RunThis: 'No' SourceServerName: 'CHECK' SourceUserName: '1cusers' SourcePassword: 'Si3fumez' SourceDBName: 'DAM.dev.101' BackUpNameSet: 'Full backup DAM.BF.00-00000004' ServerName: 'CHECK' UserName: '1cusers' Password: 'Si3fumez' DBName: 'DAM.BF.00-00000004' SourceLogicalDBName: 'CI_YML_TEST' FullPathMDFDeploy: 'G:\SQLData\DAM.BF.00-00000004.mdf' SourceLogicalDBLogName: 'CI_YML_TEST_log' FullPathLDFDeploy: 'G:\SQLData\DAM.BF.00-00000004_log.ldf' only: changes: - DemoAM/src/**/* refs: - BF/00-00000004 variables: - $RunThis == 'Yes' # Отдельное задание объекта сборки TP/00-00000001 этапа Copy Copy_DAM.TP.00-00000001: <<: *copy stage: Copy variables: GIT_STRATEGY: none RunThis: 'No' SourceServerName: 'CHECK' SourceUserName: '1cusers' SourcePassword: 'Si3fumez' SourceDBName: 'DAM.dev.101' BackUpNameSet: 'Full backup DAM.TP.00-00000001' ServerName: 'CHECK' UserName: '1cusers' Password: 'Si3fumez' DBName: 'DAM.TP.00-00000001' SourceLogicalDBName: 'CI_YML_TEST' FullPathMDFDeploy: 'G:\SQLData\DAM.TP.00-00000001.mdf' SourceLogicalDBLogName: 'CI_YML_TEST_log' FullPathLDFDeploy: 'G:\SQLData\DAM.TP.00-00000001_log.ldf' only: changes: - DemoAM/src/**/* refs: - TP/00-00000001 variables: - $RunThis == 'Yes' # Отдельное задание объекта сборки BF/00-00000007 этапа Copy Copy_DAM.BF.00-00000007: <<: *copy stage: Copy variables: GIT_STRATEGY: none RunThis: 'No' SourceServerName: 'CHECK' SourceUserName: '1cusers' SourcePassword: 'Si3fumez' SourceDBName: 'DAM.dev.101' BackUpNameSet: 'Full backup DAM.BF.00-00000007' ServerName: 'CHECK' UserName: '1cusers' Password: 'Si3fumez' DBName: 'DAM.BF.00-00000007' SourceLogicalDBName: 'CI_YML_TEST' FullPathMDFDeploy: 'G:\SQLData\DAM.BF.00-00000007.mdf' SourceLogicalDBLogName: 'CI_YML_TEST_log' FullPathLDFDeploy: 'G:\SQLData\DAM.BF.00-00000007_log.ldf' only: changes: - DemoAM/src/**/* refs: - BF/00-00000007 variables: - $RunThis == 'Yes' # Отдельное задание объекта сборки BF/00-00000001 этапа Copy Copy_DAM.BF.00-00000001: <<: *copy stage: Copy variables: GIT_STRATEGY: none RunThis: 'No' SourceServerName: 'CHECK' SourceUserName: '1cusers' SourcePassword: 'Si3fumez' SourceDBName: 'DAM.dev.101' BackUpNameSet: 'Full backup DAM.BF.00-00000001' ServerName: 'CHECK' UserName: '1cusers' Password: 'Si3fumez' DBName: 'DAM.BF.00-00000001' SourceLogicalDBName: 'CI_YML_TEST' FullPathMDFDeploy: 'G:\SQLData\DAM.BF.00-00000001.mdf' SourceLogicalDBLogName: 'CI_YML_TEST_log' FullPathLDFDeploy: 'G:\SQLData\DAM.BF.00-00000001_log.ldf' only: changes: - DemoAM/src/**/* refs: - BF/00-00000001 variables: - $RunThis == 'Yes' # шаблон этапа GetCF .job_template: &GetCF_job tags: - update retry: 1 script: - chcp 65001 - IF EXIST OldCF_%CI_PIPELINE_ID% RD /Q/S OldCF_%CI_PIPELINE_ID% - MD OldCF_%CI_PIPELINE_ID% - IF NOT EXIST logs MD logs # Дополнительные CF для ветки мастер, если нужно обновление с более ранних релизов # если каталог, откуда нужно скопировать дополнительные конфигурации пуст, то строку ниже следует закоментировать, в противном случае скрипт будет остановлен из за ошибки копирования. #- IF %CI_COMMIT_BRANCH% EQU master copy E:\AddRelease\*.CF %CI_PROJECT_DIR%\OldCF_%CI_PIPELINE_ID% # Основная текущая конфигурация из базы. - start "" /wait "%W_PLATFORM_1C%" DESIGNER /S %DATABASENAME% /N %USER_1C% /P %PASS_1C% /DisableStartupMessages /DisableStartupDialogs /DisableSplash /UC UpdateDB /DumpCfg %CI_PROJECT_DIR%\OldCF_%CI_PIPELINE_ID%\1cv8_%CI_JOB_ID%.cf /Out %CI_PROJECT_DIR%\logs\%LOG_NAME% artifacts: when: always paths: - logs\%LOG_NAME% - OldCF_%CI_PIPELINE_ID%\*.cf expire_in: 1 day # Индивидуальные задания этапа GetCF # Отдельное задание объекта сборки Tst/101 этапа GetCF GetCF_DAM.Tst.101: <<: *GetCF_job stage: GetCF variables: DATABASENAME: 'CHECK:1641\DAM.Tst.101' GIT_STRATEGY: none LOG_NAME: '.GetCF_DAM.Tst.101.txt' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - Tst/101 variables: - $CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'schedule' # Отдельное задание объекта сборки dev/101 этапа GetCF GetCF_DAM.dev.101: <<: *GetCF_job stage: GetCF variables: DATABASENAME: 'CHECK:1641\DAM.dev.101' GIT_STRATEGY: none LOG_NAME: '.GetCF_DAM.dev.101.txt' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - dev/101 variables: - $CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'schedule' # Общие задания этапа GetCF # Отдельное задание объекта сборки master этапа GetCF GetCF_DemoAM: <<: *GetCF_job stage: GetCF variables: DATABASENAME: 'CHECK:1641\DemoAM' GIT_STRATEGY: none LOG_NAME: '.GetCF_DemoAM.txt' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - master # Отдельное задание объекта сборки BF/00-00000004 этапа GetCF GetCF_DAM.BF.00-00000004: <<: *GetCF_job stage: GetCF variables: DATABASENAME: 'CHECK:1641\DAM.BF.00-00000004' GIT_STRATEGY: none LOG_NAME: '.GetCF_DAM.BF.00-00000004.txt' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - BF/00-00000004 # Отдельное задание объекта сборки TP/00-00000001 этапа GetCF GetCF_DAM.TP.00-00000001: <<: *GetCF_job stage: GetCF variables: DATABASENAME: 'CHECK:1641\DAM.TP.00-00000001' GIT_STRATEGY: none LOG_NAME: '.GetCF_DAM.TP.00-00000001.txt' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - TP/00-00000001 # Отдельное задание объекта сборки BF/00-00000007 этапа GetCF GetCF_DAM.BF.00-00000007: <<: *GetCF_job stage: GetCF variables: DATABASENAME: 'CHECK:1641\DAM.BF.00-00000007' GIT_STRATEGY: none LOG_NAME: '.GetCF_DAM.BF.00-00000007.txt' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - BF/00-00000007 # Отдельное задание объекта сборки BF/00-00000001 этапа GetCF GetCF_DAM.BF.00-00000001: <<: *GetCF_job stage: GetCF variables: DATABASENAME: 'CHECK:1641\DAM.BF.00-00000001' GIT_STRATEGY: none LOG_NAME: '.GetCF_DAM.BF.00-00000001.txt' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - BF/00-00000001 # шаблон этапа FetchingAndConvert # Получение из git .job_template: &fetching_and_convert_job tags: - convertation script: - echo CI_CONCURRENT_ID = %CI_CONCURRENT_ID% - SET RING_OPTS=-Dfile.encoding=UTF-8 - IF EXIST %CI_BUILDS_DIR%/config%CI_PIPELINE_ID% RD /Q/S %CI_BUILDS_DIR%/config%CI_PIPELINE_ID% - ring edt workspace export --project %CI_PROJECT_DIR%/%MAIN_PROJECT% --configuration-files %CI_BUILDS_DIR%/config%CI_PIPELINE_ID% --workspace-location %CI_BUILDS_DIR%/%CI_RUNNER_SHORT_TOKEN%/workspace%CI_CONCURRENT_ID% dependencies: [] # Индивидуальные задания этапа FetchingAndConvert # Отдельное задание объекта сборки Tst/101 этапа FetchingAndConvert FetchAndConvert_Tst/101: <<: *fetching_and_convert_job stage: FetchingAndConvert only: refs: - Tst/101 changes: - DemoAM/src/**/* variables: - $CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'schedule' # Отдельное задание объекта сборки dev/101 этапа FetchingAndConvert FetchAndConvert_dev/101: <<: *fetching_and_convert_job stage: FetchingAndConvert only: refs: - dev/101 changes: - DemoAM/src/**/* variables: - $CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'schedule' # Общие задания этапа FetchingAndConvert # Единое задание для всех объектов сборки этапа FetchAndConvert_United: <<: *fetching_and_convert_job stage: FetchingAndConvert only: refs: - master - BF/00-00000004 - TP/00-00000001 - BF/00-00000007 - BF/00-00000001 changes: - DemoAM/src/**/* # шаблон этапа Build # Сборка CF, CFU .job_template: &build_job tags: - build stage: Build script: - chcp 65001 - Setlocal EnableDelayedExpansion - SET FLST= - FOR /R OldCF_%CI_PIPELINE_ID% %%i IN (*) DO SET FLST=!FLST! -f %%i - echo %FLST% - IF NOT EXIST logs MD logs - IF EXIST %CI_BUILDS_DIR%\tempdb%CI_PIPELINE_ID% RD /Q/S %CI_BUILDS_DIR%\tempdb%CI_PIPELINE_ID% - start "" /wait "%W_PLATFORM_1C%" CREATEINFOBASE File=%CI_BUILDS_DIR%\tempdb%CI_PIPELINE_ID% /DisableStartupMessages /DisableStartupDialogs /DisableSplash - start "" /wait "%W_PLATFORM_1C%" DESIGNER /F %CI_BUILDS_DIR%/tempdb%CI_PIPELINE_ID% /DisableStartupMessages /DisableStartupDialogs /DisableSplash /LoadConfigFromFiles %CI_BUILDS_DIR%/config%CI_PIPELINE_ID% /UpdateDBCfg /Out %CI_PROJECT_DIR%\logs\.build_log.txt # - start "" /wait "C:\program files\1cv8\8.3.20.1710\bin\ibcmd.exe" infobase create --db-path=%CI_BUILDS_DIR%/tempdb%CI_PIPELINE_ID% --apply --import=%CI_BUILDS_DIR%/config%CI_PIPELINE_ID% --data=%CI_BUILDS_DIR%/%CI_RUNNER_SHORT_TOKEN%/DATA%CI_CONCURRENT_ID% --force - if defined FLST ( - start "" /wait "%W_PLATFORM_1C%" DESIGNER /F %CI_BUILDS_DIR%/tempdb%CI_PIPELINE_ID% /DisableStartupMessages /DisableStartupDialogs /DisableSplash /CreateDistributionFiles -cfufile %CI_PROJECT_DIR%\tempdb\update.cfu %FLST% /Out %CI_PROJECT_DIR%\logs\.cfu_make.txt ) ELSE ( - start "" /wait "%W_PLATFORM_1C%" DESIGNER /F %CI_BUILDS_DIR%/tempdb%CI_PIPELINE_ID% /DisableStartupMessages /DisableStartupDialogs /DisableSplash /CreateDistributionFiles -cffile %CI_PROJECT_DIR%\tempdb\update.cf /Out %CI_PROJECT_DIR%\logs\.cfu_make.txt ) - RD /Q/S %CI_BUILDS_DIR%\config%CI_PIPELINE_ID% - RD /Q/S %CI_BUILDS_DIR%\tempdb%CI_PIPELINE_ID% artifacts: when: always paths: - logs\.cfu_make.txt - logs\.build_log.txt - tempdb\update.cfu expire_in: 1 day # needs: ["Convertation"] #Ручная очистка для упавших пайпов. .job_template: &ClearBuildData_job tags: - build stage: Build variables: GIT_STRATEGY: none script: - chcp 65001 - RD /Q/S %CI_BUILDS_DIR%\config%CI_PIPELINE_ID% - RD /Q/S %CI_BUILDS_DIR%\tempdb%CI_PIPELINE_ID% when: manual dependencies: [] # Индивидуальные задания этапа Build # Отдельное задание объекта сборки master этапа Build Build_master: <<: *build_job variables: GIT_STRATEGY: none only: refs: - master changes: - DemoAM/src/**/* script: - chcp 65001 - Setlocal EnableDelayedExpansion - SET FLST= - FOR /R OldCF_%CI_PIPELINE_ID% %%i IN (*) DO SET FLST=!FLST! -f %%i - echo %FLST% - IF NOT EXIST logs MD logs - IF NOT EXIST tempdb MD tempdb - start "" /wait "%W_PLATFORM_1C%" CREATEINFOBASE File=%CI_BUILDS_DIR%/tempdb%CI_PIPELINE_ID% /DisableStartupMessages /DisableStartupDialogs /DisableSplash - start "" /wait "%W_PLATFORM_1C%" DESIGNER /F %CI_BUILDS_DIR%/tempdb%CI_PIPELINE_ID% /DisableStartupMessages /DisableStartupDialogs /DisableSplash /LoadConfigFromFiles %CI_BUILDS_DIR%/config%CI_PIPELINE_ID% /UpdateDBCfg /Out %CI_PROJECT_DIR%\logs\.build_log.txt # - start "" /wait "C:\program files\1cv8\8.3.20.1710\bin\ibcmd.exe" infobase create --db-path=%CI_BUILDS_DIR%/tempdb%CI_PIPELINE_ID% --apply --import=%CI_BUILDS_DIR%/config%CI_PIPELINE_ID% --data=%CI_BUILDS_DIR%/%CI_RUNNER_SHORT_TOKEN%/DATA%CI_CONCURRENT_ID% --force - if defined FLST ( - start "" /wait "%W_PLATFORM_1C%" DESIGNER /F %CI_BUILDS_DIR%/tempdb%CI_PIPELINE_ID% /DisableStartupMessages /DisableStartupDialogs /DisableSplash /CreateDistributionFiles -cffile %CI_PROJECT_DIR%\tempdb\update.cf -cfufile %CI_PROJECT_DIR%\tempdb\update.cfu %FLST% /Out %CI_PROJECT_DIR%\logs\.cfu_make.txt ) ELSE ( - start "" /wait "%W_PLATFORM_1C%" DESIGNER /F %CI_BUILDS_DIR%/tempdb%CI_PIPELINE_ID% /DisableStartupMessages /DisableStartupDialogs /DisableSplash /CreateDistributionFiles -cffile %CI_PROJECT_DIR%\tempdb\update.cf /Out %CI_PROJECT_DIR%\logs\.cfu_make.txt ) - RD /Q/S %CI_BUILDS_DIR%\config%CI_PIPELINE_ID% - RD /Q/S %CI_BUILDS_DIR%\tempdb%CI_PIPELINE_ID% artifacts: when: always paths: - logs\.cfu_make.txt - logs\.build_log.txt - tempdb\update.cf* expire_in: 2 week ClearBuildData_master: <<: *ClearBuildData_job only: refs: - master changes: - DemoAM/src/**/* # Отдельное задание объекта сборки Tst/101 этапа Build Build_Tst/101: <<: *build_job stage: Build variables: GIT_STRATEGY: none only: refs: - Tst/101 changes: - DemoAM/src/**/* variables: - $CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'schedule' ClearBuildData_Tst/101: <<: *ClearBuildData_job only: refs: - Tst/101 changes: - DemoAM/src/**/* variables: - $CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'schedule' # Отдельное задание объекта сборки dev/101 этапа Build Build_dev/101: <<: *build_job stage: Build variables: GIT_STRATEGY: none only: refs: - dev/101 changes: - DemoAM/src/**/* variables: - $CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'schedule' ClearBuildData_dev/101: <<: *ClearBuildData_job only: refs: - dev/101 changes: - DemoAM/src/**/* variables: - $CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'schedule' # Общие задания этапа Build # Единое задание для всех объектов сборки этапа Build_United: <<: *build_job stage: Build variables: GIT_STRATEGY: none only: refs: - BF/00-00000004 - TP/00-00000001 - BF/00-00000007 - BF/00-00000001 changes: - DemoAM/src/**/* ClearBuildData_United: <<: *ClearBuildData_job only: refs: - BF/00-00000004 - TP/00-00000001 - BF/00-00000007 - BF/00-00000001 changes: - DemoAM/src/**/* # шаблон этапа Update # Обновляем базу из CF .job_template: &update_job tags: - update retry: 1 script: - chcp 65001 - IF NOT EXIST logs MD logs - IF EXIST tempdb\update.cfu ( SET UpdFile=tempdb\update.cfu ) ELSE ( SET UpdFile=tempdb\update.cf ) - start "" /wait "%W_PLATFORM_1C%" DESIGNER /S %DATABASENAME% /N %USER_1C% /P %PASS_1C% /UC UpdateDB /DisableStartupMessages /DisableStartupDialogs /DisableSplash /UpdateCfg %CI_PROJECT_DIR%\%UpdFile% /Out %CI_PROJECT_DIR%\logs\%LOG_NAME% - FOR /D %%i IN (OldCF_*) DO rd /Q/S %%i # dependencies: ["Build"] # Индивидуальные задания этапа Update # Отдельное задание объекта сборки Tst/101 этапа Update Update_DAM.Tst.101: <<: *update_job stage: Update variables: DATABASENAME: 'CHECK:1641\DAM.Tst.101' GIT_STRATEGY: none LOG_NAME: '.update_DAM.Tst.101.txt' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - Tst/101 variables: - $CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'schedule' artifacts: when: always paths: - logs\$LOG_NAME expire_in: 1 day # Отдельное задание объекта сборки dev/101 этапа Update Update_DAM.dev.101: <<: *update_job stage: Update variables: DATABASENAME: 'CHECK:1641\DAM.dev.101' GIT_STRATEGY: none LOG_NAME: '.update_DAM.dev.101.txt' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' allow_failure: true script: - chcp 65001 - IF NOT EXIST logs MD logs - IF EXIST tempdb\update.cfu ( SET UpdFile=tempdb\update.cfu ) ELSE ( SET UpdFile=tempdb\update.cf ) - start "" /wait "%W_PLATFORM_1C%" DESIGNER /S %DATABASENAME% /N %USER_1C% /P %PASS_1C% /UC UpdateDB /DisableStartupMessages /DisableStartupDialogs /DisableSplash /UpdateCfg %CI_PROJECT_DIR%\%UpdFile% /Out %CI_PROJECT_DIR%\logs\%LOG_NAME% - FOR /D %%i IN (OldCF_*) DO rd /Q/S %%i # - IF %ReplaceExt% EQU = Yes ( # - start "" /wait "%W_PLATFORM_1C%" DESIGNER /S %DATABASENAME% /N %USER_1C% /P %PASS_1C% /UC UpdateDB /DisableStartupMessages /DisableStartupDialogs /DisableSplash /ConfigurationRepositoryUnbindCfg -force -Extension РасширениеУХКвадра /Out %CI_PROJECT_DIR%\logs\%LOG_NAME% -NoTruncate # - start "" /wait "%W_PLATFORM_1C%" DESIGNER /S %DATABASENAME% /N %USER_1C% /P %PASS_1C% /UC UpdateDB /DisableStartupMessages /DisableStartupDialogs /DisableSplash /LoadCfg F:\SQL-Backup\РасширениеУХКвадра_01_12_21.cfe -Extension РасширениеУХКвадра /UpdateDBcfg /Out %CI_PROJECT_DIR%\logs\%LOG_NAME% -NoTruncate # - start "" /wait "%W_PLATFORM_1C%" DESIGNER /S %DATABASENAME% /N %USER_1C% /P %PASS_1C% /UC UpdateDB /DisableStartupMessages /DisableStartupDialogs /DisableSplash /LoadCfg F:\SQL-Backup\q_extBagFix.cfe -Extension q_extBagFix /UpdateDBcfg /Out %CI_PROJECT_DIR%\logs\%LOG_NAME% -NoTruncate ) # timeout: 10 hours only: changes: - DemoAM/src/**/* refs: - dev/101 variables: - $CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'schedule' artifacts: when: always paths: - logs\$LOG_NAME expire_in: 1 day # Общие задания этапа Update # Отдельное задание объекта сборки master этапа Update Update_DemoAM: <<: *update_job stage: Update variables: DATABASENAME: 'CHECK:1641\DemoAM' GIT_STRATEGY: none LOG_NAME: '.update_DemoAM.txt' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - master artifacts: when: always paths: - logs\.update_DemoAM.txt expire_in: 1 day # Отдельное задание объекта сборки BF/00-00000004 этапа Update Update_DAM.BF.00-00000004: <<: *update_job stage: Update variables: DATABASENAME: 'CHECK:1641\DAM.BF.00-00000004' GIT_STRATEGY: none LOG_NAME: '.update_DAM.BF.00-00000004.txt' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - BF/00-00000004 artifacts: when: always paths: - logs\.update_DAM.BF.00-00000004.txt expire_in: 1 day # Отдельное задание объекта сборки TP/00-00000001 этапа Update Update_DAM.TP.00-00000001: <<: *update_job stage: Update variables: DATABASENAME: 'CHECK:1641\DAM.TP.00-00000001' GIT_STRATEGY: none LOG_NAME: '.update_DAM.TP.00-00000001.txt' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - TP/00-00000001 artifacts: when: always paths: - logs\.update_DAM.TP.00-00000001.txt expire_in: 1 day # Отдельное задание объекта сборки BF/00-00000007 этапа Update Update_DAM.BF.00-00000007: <<: *update_job stage: Update variables: DATABASENAME: 'CHECK:1641\DAM.BF.00-00000007' GIT_STRATEGY: none LOG_NAME: '.update_DAM.BF.00-00000007.txt' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - BF/00-00000007 artifacts: when: always paths: - logs\.update_DAM.BF.00-00000007.txt expire_in: 1 day # Отдельное задание объекта сборки BF/00-00000001 этапа Update Update_DAM.BF.00-00000001: <<: *update_job stage: Update variables: DATABASENAME: 'CHECK:1641\DAM.BF.00-00000001' GIT_STRATEGY: none LOG_NAME: '.update_DAM.BF.00-00000001.txt' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - BF/00-00000001 artifacts: when: always paths: - logs\.update_DAM.BF.00-00000001.txt expire_in: 1 day # шаблон этапа UpdateDB # Обновляем конфигурацию ИБ .job_template: &updateDB_job tags: - update retry: 1 script: - chcp 65001 - start "" /wait "%W_PLATFORM_1C%" DESIGNER /S %DATABASENAME% /N %USER_1C% /P %PASS_1C% /UC UpdateDB /DisableStartupMessages /DisableStartupDialogs /DisableSplash /UpdateDBcfg -Dynamic- /Out %CI_PROJECT_DIR%\logs\%LOG_NAME% -NoTruncate dependencies: [] # Индивидуальные задания этапа UpdateDB # Отдельное задание объекта сборки Tst/101 этапа UpdateDB UpdateDB_DAM.Tst.101: <<: *updateDB_job stage: UpdateDB variables: DATABASENAME: 'CHECK:1641\DAM.Tst.101' GIT_STRATEGY: none USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - Tst/101 variables: - $CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'schedule' artifacts: when: always paths: - logs\.updateDB_DAM.Tst.101.txt expire_in: 1 day # Отдельное задание объекта сборки dev/101 этапа UpdateDB UpdateDB_DAM.dev.101: <<: *updateDB_job stage: UpdateDB variables: DATABASENAME: 'CHECK:1641\DAM.dev.101' GIT_STRATEGY: none USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' allow_failure: true only: changes: - DemoAM/src/**/* refs: - dev/101 variables: - $CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'schedule' artifacts: when: always paths: - logs\.updateDB_DAM.dev.101.txt expire_in: 1 day # Общие задания этапа UpdateDB # Отдельное задание объекта сборки master этапа UpdateDB UpdateDB_DemoAM: <<: *updateDB_job stage: UpdateDB variables: DATABASENAME: 'CHECK:1641\DemoAM' GIT_STRATEGY: none LOG_NAME: '.updateDB_DemoAM.txt' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - master artifacts: when: always paths: - logs\.updateDB_DemoAM.txt expire_in: 1 day # Отдельное задание объекта сборки BF/00-00000004 этапа UpdateDB UpdateDB_DAM.BF.00-00000004: <<: *updateDB_job stage: UpdateDB variables: DATABASENAME: 'CHECK:1641\DAM.BF.00-00000004' GIT_STRATEGY: none LOG_NAME: '.updateDB_DAM.BF.00-00000004.txt' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - BF/00-00000004 artifacts: when: always paths: - logs\.updateDB_DAM.BF.00-00000004.txt expire_in: 1 day # Отдельное задание объекта сборки TP/00-00000001 этапа UpdateDB UpdateDB_DAM.TP.00-00000001: <<: *updateDB_job stage: UpdateDB variables: DATABASENAME: 'CHECK:1641\DAM.TP.00-00000001' GIT_STRATEGY: none LOG_NAME: '.updateDB_DAM.TP.00-00000001.txt' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - TP/00-00000001 artifacts: when: always paths: - logs\.updateDB_DAM.TP.00-00000001.txt expire_in: 1 day # Отдельное задание объекта сборки BF/00-00000007 этапа UpdateDB UpdateDB_DAM.BF.00-00000007: <<: *updateDB_job stage: UpdateDB variables: DATABASENAME: 'CHECK:1641\DAM.BF.00-00000007' GIT_STRATEGY: none LOG_NAME: '.updateDB_DAM.BF.00-00000007.txt' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - BF/00-00000007 artifacts: when: always paths: - logs\.updateDB_DAM.BF.00-00000007.txt expire_in: 1 day # Отдельное задание объекта сборки BF/00-00000001 этапа UpdateDB UpdateDB_DAM.BF.00-00000001: <<: *updateDB_job stage: UpdateDB variables: DATABASENAME: 'CHECK:1641\DAM.BF.00-00000001' GIT_STRATEGY: none LOG_NAME: '.updateDB_DAM.BF.00-00000001.txt' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - BF/00-00000001 artifacts: when: always paths: - logs\.updateDB_DAM.BF.00-00000001.txt expire_in: 1 day # шаблон этапа Unlock # Снятие блокировки .job_template: &unlock_job tags: - gui-command script: - chcp 65001 - echo %DATABASENAME% # - start "" /wait "%W_PLATFORM_1C_tc%" ENTERPRISE /S %DATABASENAME% /N %USER_1C% /P %PASS_1C% /DisableStartupMessages /DisableStartupDialogs /DisableSplash /C ВыполнитьОтложенноеОбновлениеСейчас /UC UpdateDB - start "" /wait "%W_PLATFORM_1C_tc%" ENTERPRISE /S %DATABASENAME% /N %USER_1C% /P %PASS_1C% /DisableStartupMessages /DisableStartupDialogs /DisableSplash /C РазрешитьРаботуПользователей /UC UpdateDB dependencies: [] # Индивидуальные задания этапа Unlock # Отдельное задание объекта сборки Tst/101 этапа Unlock Unlock_DAM.Tst.101: <<: *unlock_job stage: Unlock variables: GIT_STRATEGY: none DATABASENAME: 'CHECK:1641\DAM.Tst.101' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - Tst/101 variables: - $CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'schedule' # Отдельное задание объекта сборки dev/101 этапа Unlock Unlock_DAM.dev.101: <<: *unlock_job stage: Unlock variables: GIT_STRATEGY: none DATABASENAME: 'CHECK:1641\DAM.dev.101' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' # timeout: 72 hours only: changes: - DemoAM/src/**/* refs: - dev/101 variables: - $CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'schedule' # Общие задания этапа Unlock # Отдельное задание объекта сборки master этапа Unlock Unlock_DemoAM: <<: *unlock_job stage: Unlock variables: GIT_STRATEGY: none DATABASENAME: 'CHECK:1641\DemoAM' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - master # Отдельное задание объекта сборки BF/00-00000004 этапа Unlock Unlock_DAM.BF.00-00000004: <<: *unlock_job stage: Unlock variables: GIT_STRATEGY: none DATABASENAME: 'CHECK:1641\DAM.BF.00-00000004' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - BF/00-00000004 # Отдельное задание объекта сборки TP/00-00000001 этапа Unlock Unlock_DAM.TP.00-00000001: <<: *unlock_job stage: Unlock variables: GIT_STRATEGY: none DATABASENAME: 'CHECK:1641\DAM.TP.00-00000001' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - TP/00-00000001 # Отдельное задание объекта сборки BF/00-00000007 этапа Unlock Unlock_DAM.BF.00-00000007: <<: *unlock_job stage: Unlock variables: GIT_STRATEGY: none DATABASENAME: 'CHECK:1641\DAM.BF.00-00000007' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - BF/00-00000007 # Отдельное задание объекта сборки BF/00-00000001 этапа Unlock Unlock_DAM.BF.00-00000001: <<: *unlock_job stage: Unlock variables: GIT_STRATEGY: none DATABASENAME: 'CHECK:1641\DAM.BF.00-00000001' USER_1C: 'CI_BUILD' PASS_1C: 'P@ssw0rd' only: changes: - DemoAM/src/**/* refs: - BF/00-00000001 # шаблон этапа OnFailureUnlock # Попытка разблокировки баз в случае неудачи .job_template: &on_failure tags: - gui-command variables: GIT_STRATEGY: none dependencies: [] # Индивидуальные задания этапа OnFailureUnlock # Отдельное задание объекта сборки Tst/101 этапа OnFailureUnlock On_failure_unlock_DAM.Tst.101: <<: *on_failure stage: OnFailureUnlock script: - chcp 65001 - start "" /wait "%W_PLATFORM_1C_tc%" ENTERPRISE /S CHECK:1641\DAM.Tst.101 /N "CI_BUILD" /P "P@ssw0rd" /DisableStartupMessages /DisableStartupDialogs /DisableSplash /C РазрешитьРаботуПользователей /UC UpdateDB when: on_failure only: changes: - DemoAM/src/**/* refs: - Tst/101 variables: - $CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'schedule' # Отдельное задание объекта сборки dev/101 этапа OnFailureUnlock On_failure_unlock_DAM.dev.101: <<: *on_failure stage: OnFailureUnlock script: - chcp 65001 - start "" /wait "%W_PLATFORM_1C_tc%" ENTERPRISE /S CHECK:1641\DAM.dev.101 /N "CI_BUILD" /P "P@ssw0rd" /DisableStartupMessages /DisableStartupDialogs /DisableSplash /C РазрешитьРаботуПользователей /UC UpdateDB timeout: 72 hours when: on_failure only: changes: - DemoAM/src/**/* refs: - dev/101 variables: - $CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'schedule' # Общие задания этапа OnFailureUnlock # Отдельное задание объекта сборки master этапа OnFailureUnlock On_failure_unlock_DemoAM: <<: *on_failure stage: OnFailureUnlock script: - chcp 65001 - start "" /wait "%W_PLATFORM_1C_tc%" ENTERPRISE /S CHECK:1641\DemoAM /N "CI_BUILD" /P "P@ssw0rd" /DisableStartupMessages /DisableStartupDialogs /DisableSplash /C РазрешитьРаботуПользователей /UC UpdateDB when: on_failure only: changes: - DemoAM/src/**/* refs: - master # Отдельное задание объекта сборки BF/00-00000004 этапа OnFailureUnlock On_failure_unlock_DAM.BF.00-00000004: <<: *on_failure stage: OnFailureUnlock script: - chcp 65001 - start "" /wait "%W_PLATFORM_1C_tc%" ENTERPRISE /S CHECK:1641\DAM.BF.00-00000004 /N "CI_BUILD" /P "P@ssw0rd" /DisableStartupMessages /DisableStartupDialogs /DisableSplash /C РазрешитьРаботуПользователей /UC UpdateDB when: on_failure only: changes: - DemoAM/src/**/* refs: - BF/00-00000004 # Отдельное задание объекта сборки TP/00-00000001 этапа OnFailureUnlock On_failure_unlock_DAM.TP.00-00000001: <<: *on_failure stage: OnFailureUnlock script: - chcp 65001 - start "" /wait "%W_PLATFORM_1C_tc%" ENTERPRISE /S CHECK:1641\DAM.TP.00-00000001 /N "CI_BUILD" /P "P@ssw0rd" /DisableStartupMessages /DisableStartupDialogs /DisableSplash /C РазрешитьРаботуПользователей /UC UpdateDB when: on_failure only: changes: - DemoAM/src/**/* refs: - TP/00-00000001 # Отдельное задание объекта сборки BF/00-00000007 этапа OnFailureUnlock On_failure_unlock_DAM.BF.00-00000007: <<: *on_failure stage: OnFailureUnlock script: - chcp 65001 - start "" /wait "%W_PLATFORM_1C_tc%" ENTERPRISE /S CHECK:1641\DAM.BF.00-00000007 /N "CI_BUILD" /P "P@ssw0rd" /DisableStartupMessages /DisableStartupDialogs /DisableSplash /C РазрешитьРаботуПользователей /UC UpdateDB when: on_failure only: changes: - DemoAM/src/**/* refs: - BF/00-00000007 # Отдельное задание объекта сборки BF/00-00000001 этапа OnFailureUnlock On_failure_unlock_DAM.BF.00-00000001: <<: *on_failure stage: OnFailureUnlock script: - chcp 65001 - start "" /wait "%W_PLATFORM_1C_tc%" ENTERPRISE /S CHECK:1641\DAM.BF.00-00000001 /N "CI_BUILD" /P "P@ssw0rd" /DisableStartupMessages /DisableStartupDialogs /DisableSplash /C РазрешитьРаботуПользователей /UC UpdateDB when: on_failure only: changes: - DemoAM/src/**/* refs: - BF/00-00000001 # шаблон этапа FetchingAndConvertCQ Fetchin_CQT: tags: - codequality stage: FetchingAndConvertCQ script: - chcp 65001 - chcp 65001 - SET RING_OPTS=-Dfile.encoding=UTF-8 - IF EXIST %FOLDER_APK_DATABASEXML% RD %FOLDER_APK_DATABASEXML% /S /Q - ring edt workspace export --project %CI_PROJECT_DIR%/%MAIN_PROJECT% --configuration-files %FOLDER_APK_DATABASEXML% --workspace-location %CI_BUILDS_DIR%/workspace artifacts: paths: - scriptdir\* expire_in: 1 day dependencies: [] only: refs: - merge_requests variables: - $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == 'develop' # Индивидуальные задания этапа FetchingAndConvertCQ # Общие задания этапа FetchingAndConvertCQ # Единое задание для всех объектов сборки этапа # шаблон этапа BuildCQ Build_CQT: tags: - codequality stage: Build variables: GIT_STRATEGY: none script: - chcp 65001 - echo CI_CONCURRENT_ID = %CI_CONCURRENT_ID% - IF NOT EXIST logs MD logs - IF NOT EXIST tempdb MD tempdb - start "" /wait "%W_PLATFORM_1C%" CREATEINFOBASE File=%CI_PROJECT_DIR%/tempdb - start "" /wait "%W_PLATFORM_1C%" DESIGNER /F %CI_PROJECT_DIR%/tempdb /DisableStartupMessages /DisableStartupDialogs /DisableSplash /LoadConfigFromFiles %FOLDER_APK_DATABASEXML% /UpdateDBCfg /Out %CI_PROJECT_DIR%\logs\.build_log.txt - IF NOT EXIST %FOLDER_APK_SETTINGS%\LAST_BUILT_CONF.cf ( - start "" /wait "%W_PLATFORM_1C%" DESIGNER /F %CI_PROJECT_DIR%/tempdb /DisableStartupMessages /DisableStartupDialogs /DisableSplash /CreateDistributionFiles -cffile %CI_PROJECT_DIR%\tempdb\update.cf /Out %CI_PROJECT_DIR%\logs\.make_update.txt ) ELSE ( - start "" /wait "%W_PLATFORM_1C%" DESIGNER /F %CI_PROJECT_DIR%/tempdb /DisableStartupMessages /DisableStartupDialogs /DisableSplash /CreateDistributionFiles -cffile %CI_PROJECT_DIR%\tempdb\update.cf -cfufile %CI_PROJECT_DIR%\tempdb\update.cfu -f %FOLDER_APK_SETTINGS%\LAST_BUILT_CONF.cf /Out %CI_PROJECT_DIR%\logs\.make_update.txt ) - copy %CI_PROJECT_DIR%\tempdb\update.cf %FOLDER_APK_SETTINGS%\LAST_BUILT_CONF.cf - IF NOT EXIST %FOLDER_APK_DATABASE% ( - start "" /wait "%W_PLATFORM_1C%" CREATEINFOBASE File=%FOLDER_APK_DATABASE% /DisableStartupMessages /DisableStartupDialogs /DisableSplash /UseTemplate %CI_PROJECT_DIR%\tempdb\update.cf /Out %CI_PROJECT_DIR%\logs\.apk_dbcreate.txt ) ELSE ( - IF NOT EXIST %CI_PROJECT_DIR%\tempdb\update.cfu ( - start "" /wait "%W_PLATFORM_1C%" DESIGNER /F %FOLDER_APK_DATABASE% /UC UpdateDB /DisableStartupMessages /DisableStartupDialogs /DisableSplash /UpdateCfg %CI_PROJECT_DIR%\tempdb\update.cf /UpdateDBcfg -force /Out %CI_PROJECT_DIR%\logs\.apk_dbupdate.txt ) ELSE ( - start "" /wait "%W_PLATFORM_1C%" DESIGNER /F %FOLDER_APK_DATABASE% /UC UpdateDB /DisableStartupMessages /DisableStartupDialogs /DisableSplash /UpdateCfg %CI_PROJECT_DIR%\tempdb\update.cfu /UpdateDBcfg -force /Out %CI_PROJECT_DIR%\logs\.apk_dbupdate.txt ) ) - start "" /wait "%W_PLATFORM_1C%" DESIGNER /F %FOLDER_APK_DATABASE% /DisableStartupMessages /DisableStartupDialogs /DisableSplash /DumpConfigToFiles %FOLDER_APK_DATABASEXML% -ConfigDumpInfoOnly /Out %CI_PROJECT_DIR%\logs\.make_apk_dumpcfg.txt timeout: 2 hour only: refs: - merge_requests variables: - $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == 'develop' artifacts: when: always paths: - logs\* - tempdb\update.cf - tempdb\update.cfu expire_in: 1 day # Индивидуальные задания этапа BuildCQ # Общие задания этапа BuildCQ # Единое задание для всех объектов сборки этапа # шаблон этапа TestCQ # Тестирование качества кода .job_template: &testQQ_job tags: - codequality stage: TestCQ script: - chcp 65001 - IF NOT EXIST jUnit MD jUnit - start "" /wait "%W_APK_PLATFORM_1C%" ENTERPRISE /S %APK_DATABASE% /N %USER_APK% /P %PASS_APK% /C %CI_PROJECT_DIR%\testQQ_settings.xml - copy %FOLDER_APK_SETTINGS%\junit.apk.xml %CI_PROJECT_DIR%\jUnit\ - find /C "Проверка АПК не выявила ошибок" %FOLDER_APK_SETTINGS%\junit.apk.xml timeout: 10 hours artifacts: reports: junit: - jUnit/*.xml # Индивидуальные задания этапа TestCQ # Общие задания этапа TestCQ # Единое задание для всех объектов сборки этапа CQT_mrg_to_develop: <<: *testQQ_job variables: GIT_STRATEGY: none only: refs: - merge_requests variables: - $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == 'develop'