diff --git a/.github/workflows/main.iss b/.github/workflows/main.iss new file mode 100644 index 0000000000..14d99db588 --- /dev/null +++ b/.github/workflows/main.iss @@ -0,0 +1,71 @@ +; Script generated by the Inno Setup Script Wizard. +; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! + +#define MyAppName "OInt" +#define MyAppVersion "1.9.0" +#define MyAppPublisher "bayselonarrend" +#define MyAppURL "https://github.com/Bayselonarrend/OpenIntegrations" +#define MyAppExeName "oint.exe" + +[Setup] +; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications. +; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) +AppId={{E1D44D44-2C84-4112-80AA-2DC406D85A11} +AppName={#MyAppName} +AppVersion={#MyAppVersion} +;AppVerName={#MyAppName} {#MyAppVersion} +AppPublisher={#MyAppPublisher} +AppPublisherURL={#MyAppURL} +AppSupportURL={#MyAppURL} +AppUpdatesURL={#MyAppURL} +DefaultDirName={autopf}\{#MyAppName} +DefaultGroupName={#MyAppName} +DisableProgramGroupPage=yes +LicenseFile=C:\Repos\OPI\LICENSE +OutputDir="G:\Мой диск\Проекты\ОПИ\Релизы\{#MyAppVersion}" +; Uncomment the following line to run in non administrative install mode (install for current user only.) +;PrivilegesRequired=lowest +Compression=lzma +SolidCompression=yes +WizardStyle=modern +OutputBaseFilename=oint_{#MyAppVersion}_installer + +[Languages] +Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl" + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked + +[Files] +Source: "G:\Мой диск\Проекты\ОПИ\Релизы\{#MyAppVersion}\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion +; NOTE: Don't use "Flags: ignoreversion" on any shared system files + +[Icons] +Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" +Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon + +[Run] +Filename: "{cmd}"; Parameters: "/k ""cd ""{app}"" && {#MyAppExeName}"""; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent + +[Registry] +Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; \ + ValueType: expandsz; ValueName: "Path"; ValueData: "{olddata};{app}"; \ + Check: NeedsAddPath('{app}') + +[Code] + +function NeedsAddPath(Param: string): boolean; +var + OrigPath: string; +begin + if not RegQueryStringValue(HKEY_LOCAL_MACHINE, + 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', + 'Path', OrigPath) + then begin + Result := True; + exit; + end; + { look for the path with leading and trailing semicolon } + { Pos() returns 0 if not found } + Result := Pos(';' + Param + ';', ';' + OrigPath + ';') = 0; +end; diff --git a/.github/workflows/os/cli_testmaker.os b/.github/workflows/os/cli_testmaker.os index f47565648c..dfbbc8ef12 100644 --- a/.github/workflows/os/cli_testmaker.os +++ b/.github/workflows/os/cli_testmaker.os @@ -297,11 +297,6 @@ Процедура СообщитьЗаписьВДрафт() ТекущийФайл.ДобавитьСтроку(" - | - name: Добавить EXE - | env: - | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - | run: gh release upload draft ./cli/oint.exe - | | - name: Добавить DEB | env: | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -310,7 +305,7 @@ | - name: Добавить RPM | env: | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - | run: gh release upload draft ./*.rpm"); + | run: gh release upload draft ./*.rpm !./*-debuginfo-*.rpm"); КонецПроцедуры diff --git a/.github/workflows/os/releasemaker.os b/.github/workflows/os/releasemaker.os index 72b95bd573..04426985a6 100644 --- a/.github/workflows/os/releasemaker.os +++ b/.github/workflows/os/releasemaker.os @@ -1,20 +1,29 @@ -Файл1С = """C:\Program Files\1cv8\8.3.18.1208\bin\1cv8.exe"""; -Режим = "CONFIG"; -Сервер = "AIONIOTISCORE"; -База = "OpenIntegrations"; -ПутьВыгрузки = "G:\Мой диск\Проекты\ОПИ\Релизы\"; +Репозиторий = "https://github.com/Bayselonarrend/OpenIntegrations"; Версия = "1.9.0"; -ПутьКEDT = "C:\Repos\OPI\OPI"; -ПутьOS = "C:\Repos\OPI\OInt"; +Режим = "CONFIG"; -ПутьВыгрузки = ПутьВыгрузки + Версия + "\"; +//Локальные данные +Файл1С = """C:\Program Files\1cv8\8.3.18.1208\bin\1cv8.exe"""; +ПутьКРепозиторию = "C:\Repos\OPI"; +Сервер = "AIONIOTISCORE"; +База = "OpenIntegrations"; +ПутьВыгрузки = "G:\Мой диск\Проекты\ОПИ\Релизы\" + Версия + "\"; +//---------------- + +ПутьКEDT = ПутьКРепозиторию + "\OPI"; +ПутьOS = ПутьКРепозиторию + "\OInt"; +ПутьCLI = ПутьКРепозиторию + "\cli\core\Classes\Приложение.os"; +ПутьISS = ПутьКРепозиторию + "\.github\workflows\main.iss"; КаталогВыгрузки = Новый Файл(ПутьВыгрузки); -Если Не КаталогВыгрузки.Существует() Тогда - СоздатьКаталог(ПутьВыгрузки); +Если КаталогВыгрузки.Существует() Тогда + УдалитьФайлы(ПутьВыгрузки); КонецЕсли; -Основа = Файл1С + " " + Режим + " /S " + Сервер + "\" + База + " "; +СоздатьКаталог(ПутьВыгрузки); +Приостановить(1000); + +Основа = Файл1С + " " + Режим + " /S " + Сервер + "\" + База + " "; //CFE ВыгрузкаВФайл = Основа + "/DumpCfg """ + ПутьВыгрузки + "OpenIntegrations_" + Версия + ".cfe" + """ -Extension OpenIntegrations"; @@ -40,6 +49,8 @@ ZipXML.Записать(); ПутьZIP = ПутьВыгрузки + "EDT.zip"; ZipEDT = Новый ЗаписьZipФайла(ПутьZIP); +УдалитьФайлы(ПапкаXML); + //EDT ZipEDT.Добавить(ПутьКEDT + "\*.*" , РежимСохраненияПутейZIP.СохранятьОтносительныеПути, РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно); ZipEDT.Записать(); @@ -49,3 +60,35 @@ ZipEDT.Записать(); ЗапуститьПриложение(СборкаOS, , Истина); ПереместитьФайл("C:\oint-" + Версия + ".ospx", ПутьВыгрузки + "oint-" + Версия + ".ospx"); +//EXE +СборкаEXE = "oscript -make """ + ПутьCLI + """ """ + ПутьВыгрузки + "oint.exe"""; +ЗапуститьПриложение(СборкаEXE, , Истина); + +//Setup + +ТекстISS = Новый ТекстовыйДокумент(); +ТекстISS.Прочитать(ПутьISS); + +Для Н = 1 По ТекстISS.КоличествоСтрок() Цикл + + ТекущаяСтрока = СокрЛП(ТекстISS.ПолучитьСтроку(Н)); + + Если СтрНайти(ТекущаяСтрока, "#define MyAppVersion") Тогда + ТекстISS.ЗаменитьСтроку(Н, "#define MyAppVersion """ + Версия + """"); + Прервать; + КонецЕсли; + +КонецЦикла; + +ТекстISS.Записать(ПутьISS); + +СборкаSetup = """C:\Program Files (x86)\Inno Setup 6\Compil32.exe"" /cc """ + ПутьISS + """"; +ЗапуститьПриложение(СборкаSetup, , Истина); + +//Draft + +ФайлыРелиза = НайтиФайлы(ПутьВыгрузки, "*", Истина); + +Для Каждого ФайлРелиза Из ФайлыРелиза Цикл + ЗапуститьПриложение("""C:\Program Files\GitHub CLI\gh.exe"" release upload draft --repo " + Репозиторий + " """ + ФайлРелиза.ПолноеИмя + """"); +КонецЦикла; diff --git a/cli/core/Classes/Приложение.os b/cli/core/Classes/Приложение.os index 60ee91ff43..972e1b3101 100644 --- a/cli/core/Classes/Приложение.os +++ b/cli/core/Classes/Приложение.os @@ -20,7 +20,7 @@ Тестирование = Ложь; Парсер = Новый ПарсерАргументовКоманднойСтроки(); ОбъектОПИ = Новый СвязьОПИ(); - Версия = ОбъектОПИ.ПолучитьВерсию(); + Версия = ОбъектОПИ.Версия; Команды = ОбъектОПИ.СоответствиеКомандМодулей; ДобавитьКомандуСправки(); diff --git a/cli/tools/Classes/СвязьОПИ.os b/cli/tools/Classes/СвязьОПИ.os index 4d1487f9ee..b76987fced 100644 --- a/cli/tools/Classes/СвязьОПИ.os +++ b/cli/tools/Classes/СвязьОПИ.os @@ -2,12 +2,14 @@ Перем СоответствиеТаблицПараметров Экспорт; Перем СоответствиеКомандМодулей Экспорт; +Перем Версия Экспорт; Процедура ПриСозданииОбъекта() СоответствиеТаблицПараметров = Новый Соответствие(); СоответствиеКомандМодулей = Новый Соответствие(); + Версия = СоставБиблиотеки.ПолучитьВерсию(); ТаблицаСостава = СоставБиблиотеки.ПолучитьСостав(); СоответствиеКомандМодулей = СоставБиблиотеки.ПолучитьСоответствиеКомандМодулей();