1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-12-25 02:42:28 +02:00

OS для Actions

This commit is contained in:
Anton Titovets 2024-03-14 11:16:33 +00:00
parent cd9718a90c
commit 44442c562e
2 changed files with 141 additions and 18 deletions

View File

@ -4,29 +4,19 @@ name: CI
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the "main" branch
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
# Runs a single command using the runners shell
- name: Run a one-line script
run: |
cd ${{ github.workspace }}/OPI
tree -d
- uses: actions/checkout@v2
- uses: otymko/setup-onescript@v1.4
with:
version: 1.3.0 # Требуемая версия OneScript
- name: Выполнить скрипт
run: oscript /.github/workflows/convert.os

133
.github/workflows/convert.os vendored Normal file
View File

@ -0,0 +1,133 @@
Функция ПолучитьСопоставлениеФайлов()
Сопоставление = Новый Соответствие();
Сопоставление.Вставить("OPI\src\CommonModules\OPI_GoogleCalendar\Module.bsl" , "OInt\core\Modules\OPI_GoogleCalendar.os");
Сопоставление.Вставить("OPI\src\CommonModules\OPI_GoogleDrive\Module.bsl" , "OInt\core\Modules\OPI_GoogleDrive.os");
Сопоставление.Вставить("OPI\src\CommonModules\OPI_GoogleWorkspace\Module.bsl" , "OInt\core\Modules\OPI_GoogleWorkspace.os");
Сопоставление.Вставить("OPI\src\CommonModules\OPI_Notion\Module.bsl" , "OInt\core\Modules\OPI_Notion.os");
Сопоставление.Вставить("OPI\src\CommonModules\OPI_Telegram\Module.bsl" , "OInt\core\Modules\OPI_Telegram.os");
Сопоставление.Вставить("OPI\src\CommonModules\OPI_Twitter\Module.bsl" , "OInt\core\Modules\OPI_Twitter.os");
Сопоставление.Вставить("OPI\src\CommonModules\OPI_Viber\Module.bsl" , "OInt\core\Modules\OPI_Viber.os");
Сопоставление.Вставить("OPI\src\CommonModules\OPI_VK\Module.bsl" , "OInt\core\Modules\OPI_VK.os");
Сопоставление.Вставить("OPI\src\CommonModules\OPI_YandexDisk\Module.bsl" , "OInt\core\Modules\OPI_YandexDisk.os");
Сопоставление.Вставить("OPI\src\CommonModules\OPI_YandexID\Module.bsl" , "OInt\core\Modules\OPI_YandexID.os");
Сопоставление.Вставить("OPI\src\CommonModules\OPI_Тесты\Module.bsl" , "OInt\tests\Modules\internal\OPI_Тесты.os");
Сопоставление.Вставить("OPI\src\CommonModules\OPI_ПолучениеДанныхТестов\Module.bsl" , "OInt\tools\Modules\OPI_ПолучениеДанныхТестов.os");
Сопоставление.Вставить("OPI\src\CommonModules\OPI_Инструменты\Module.bsl" , "OInt\tools\Modules\internal\Modules\OPI_Инструменты.os");
Сопоставление.Вставить("OPI\src\CommonModules\OPI_Криптография\Module.bsl" , "OInt\tools\Modules\internal\Modules\OPI_Криптография.os");
КонецФункции
Функция ПолучитьСоответствиеЗамен()
СоответствиеЗамен = Новый Соответствие();
СоответствиеЗамен.Вставить("// #Использовать" , "#Использовать");
СоответствиеЗамен.Вставить("//#Использовать" , "#Использовать");
СоответствиеЗамен.Вставить("УстановитьБезопасныйРежим(Истина);" , "");
СоответствиеЗамен.Вставить("УстановитьБезопасныйРежим(Ложь);" , "");
Возврат СоответствиеЗамен;
КонецФункции
Процедура ВыполнитьОбработку()
Сообщить("Начало конвертации OPI -> OInt");
Сообщить("------------------------------");
Начало = ТекущаяДата();
СоответствиеМодулей = ПолучитьСопоставлениеФайлов();
Для Каждого ПараМодулей Из СоответствиеМодулей Цикл
Сообщить(Символы.ПС);
ПортироватьФайл(ПараМодулей.Ключ, Значение.Значение);
КонецЦикла;
Сообщить("------------------------------");
Сообщить("Обработка завершена! Длительность - " + Строка(ТекущаяДата() - Начало));
КонецПроцедуры
#Область СлужебныеПроцедурыИФункции
Процедура ПортироватьФайл(Знач Файл1С, Знач ФайлОС)
ФайлМодуля = Новый Файл(Файл1С);
Если ФайлМодуля.Существует() Тогда
ВыводСообщенияПроцесса(ФайлМодуля.Имя, "Начало обработки файла");
Иначе
ВыводСообщенияПроцесса(ФайлМодуля.Имя, "Файл не существует. Пропускаем");
Возврат;
КонецЕсли
Модуль = ПрочитатьМодуль(Файл1С);
Если СтрДлина(Модуль) = 0 Тогда
ВыводСообщенияПроцесса(ФайлМодуля.Имя, "Модуль пустой. Пропускаем");
Возврат;
КонецЕсли;
ОбработатьЗаменыМодуля(Модуль);
ЗаписатьМодуль(ФайлОС, Модуль);
КонецПроцедуры
Процедура ПрочитатьМодуль(Знач ФайлМодуля)
ВыводСообщенияПроцесса(ФайлМодуля.Имя, "Начало чтения текста модуля");
ЧтениеТекста = Новый ЧтениеТекста(ФайлМодуля);
Модуль = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть();
ВыводСообщенияПроцесса(ФайлМодуля.Имя, "Модуль прочитан. Длина - " + Строка(СтрДлина(Модуль)));
Возврат Модуль;
КонецПроцедуры
Процедура ЗаписатьМодуль(Знач ФайлМодуля, Знач Модуль)
ВыводСообщенияПроцесса(ФайлМодуля.Имя, "Начало записи модуля");
ТекстовыйДокумент = Новый ТекстовыйДокумент();
ТекстовыйДокумент.УстановитьТекст(Модуль);
ТекстовыйДокумент.Записать(ФайлОС);
ВыводСообщенияПроцесса(ФайлМодуля.Имя, "Модуль записан");
КонецПроцедуры
Процедура ВыводСообщенияПроцесса(Знач ИмяФайла, Знач Действие)
Длина = 30;
Пока СтрДлина(ИмяФайла) < 30 Цикл
ИмяФайла = ИмяФайла + " ";
КонецЦикла;
Сообщить("Конвертация | " + ИмяФайла + " | " + Действие);
КонецПроцедуры
Процедура ОбработатьЗаменыМодуля(Модуль)
ВыводСообщенияПроцесса(ФайлМодуля.Имя, "Начало произведения замен");
СоответствиеЗамен = ПолучитьСоответствиеЗамен();
Для Каждого Замена Из СоответствиеЗамен Цикл
Модуль = СтрЗаменить(Замена.Ключ, Замена.Значение);
КонецЦикла;
ВыводСообщенияПроцесса(ФайлМодуля.Имя, "Окончание произведения замен");
КонецПроцедуры
#КонецОбласти
ВыполнитьОбработку();