Skip to content

Commit 0d23d26

Browse files
committed
build: Переделана сборка с использованием хуков packagedef
1 parent 668732f commit 0d23d26

File tree

6 files changed

+96
-89
lines changed

6 files changed

+96
-89
lines changed

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
opm install 1commands
4848
4949
- name: Сборка пакета
50-
run: oscript build.os
50+
run: opm build
5151

5252
- name: Заливка артефактов
5353
uses: actions/upload-artifact@v4

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
run: opm install ${{ env.additional_oscript_packages }}
4040

4141
- name: Сборка пакета
42-
run: oscript build.os
42+
run: opm build
4343

4444
- name: Вычисление имени пакета
4545
shell: bash

README.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,3 @@ opm install compressor
129129
</tr>
130130
</tbody>
131131
</table>
132-
133-
## Сборка
134-
135-
```
136-
oscript build.os
137-
```

build.os

Lines changed: 0 additions & 80 deletions
This file was deleted.

package-loader.os

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@
6262
Для Каждого Файл Из Файлы Цикл
6363
Вывести(СтрШаблон(" класс (по соглашению) %1, файл %2", Файл.ИмяБезРасширения, Файл.ПолноеИмя));
6464
СтандартнаяОбработка = Ложь;
65-
// ДобавитьКласс(Файл.ПолноеИмя, Файл.ИмяБезРасширения);
6665
ДобавитьКлассЕслиРанееНеДобавляли(Файл.ПолноеИмя, Файл.ИмяБезРасширения);
6766
КонецЦикла;
6867
КонецЕсли;

packagedef

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,97 @@
1+
#Использовать 1commands
2+
#Использовать fs
3+
4+
// Вызывается пакетным менеджером перед началом сборки пакета.
5+
//
6+
// Параметры:
7+
// РабочийКаталог - Строка - Текущий рабочий каталог с исходниками пакета.
8+
//
9+
Процедура ПередСборкой(Знач РабочийКаталог) Экспорт
10+
СобратьБиблиотекуDotNET();
11+
ПодготовитьКаталогСКомпонентами();
12+
ПроверитьНаличиеБиблиотекиDotNET();
13+
КонецПроцедуры
14+
15+
Процедура СобратьБиблиотекуDotNET()
16+
17+
КаталогРелиза = ОбъединитьПути(ТекущийКаталог(), "oscript-compressor/bin/Release");
18+
ФС.ОбеспечитьПустойКаталог(КаталогРелиза);
19+
20+
Команда = Новый Команда;
21+
Команда.УстановитьСтрокуЗапуска("dotnet build oscript-compressor -c Release");
22+
Команда.ПоказыватьВыводНемедленно(Истина);
23+
Команда.УстановитьКодировкуВывода(КодировкаТекста.UTF8);
24+
КодВозврата = Команда.Исполнить();
25+
Если Не КодВозврата = 0 Тогда
26+
ВызватьИсключение "Не удалось выполнить сборку .NET библиотеки";
27+
КонецЕсли;
28+
29+
КонецПроцедуры
30+
31+
Процедура ПодготовитьКаталогСКомпонентами()
32+
33+
СоответствиеПапок = Новый Соответствие();
34+
СоответствиеПапок.Вставить("net4", "net48");
35+
СоответствиеПапок.Вставить("dotnet", "net6.0");
36+
37+
ПомещаемыеРесурсы = Новый Массив();
38+
ПомещаемыеРесурсы.Добавить("1script_compressor.dll");
39+
40+
ПомещаемыеРесурсы.Добавить("EasyCompressor.dll");
41+
ПомещаемыеРесурсы.Добавить("EasyCompressor.Snappier.dll");
42+
ПомещаемыеРесурсы.Добавить("EasyCompressor.LZ4.dll");
43+
ПомещаемыеРесурсы.Добавить("EasyCompressor.ZstdSharp.dll");
44+
45+
ПомещаемыеРесурсы.Добавить("BrotliSharpLib.dll");
46+
ПомещаемыеРесурсы.Добавить("Snappier.dll");
47+
ПомещаемыеРесурсы.Добавить("ZstdSharp.dll");
48+
ПомещаемыеРесурсы.Добавить("K4os.Compression.LZ4.dll");
49+
ПомещаемыеРесурсы.Добавить("K4os.Compression.LZ4.Streams.dll");
50+
ПомещаемыеРесурсы.Добавить("K4os.Hash.xxHash.dll");
51+
52+
ПомещаемыеРесурсы.Добавить("System.Memory.dll");
53+
ПомещаемыеРесурсы.Добавить("System.Buffers.dll");
54+
ПомещаемыеРесурсы.Добавить("System.Runtime.CompilerServices.Unsafe.dll");
55+
ПомещаемыеРесурсы.Добавить("System.Threading.Tasks.Extensions.dll");
56+
57+
КаталогСКомпонентами = ОбъединитьПути(ТекущийКаталог(), "Components");
58+
59+
ФС.ОбеспечитьПустойКаталог(КаталогСКомпонентами);
60+
61+
Для Каждого Соответствие Из СоответствиеПапок Цикл
62+
ИмяКаталогаOscript = Соответствие.Ключ;
63+
ИмяКаталогаDotnet = Соответствие.Значение;
64+
65+
ПутьККаталгуOscript = ОбъединитьПути(КаталогСКомпонентами, ИмяКаталогаOscript);
66+
ПутьККаталгуDotnet = ОбъединитьПути(ТекущийКаталог(), "oscript-compressor/bin/Release", ИмяКаталогаDotnet);
67+
68+
ФС.ОбеспечитьПустойКаталог(ПутьККаталгуOscript);
69+
70+
Для Каждого ИмяРесурса Из ПомещаемыеРесурсы Цикл
71+
ПутьИсточник = ОбъединитьПути(ПутьККаталгуDotnet, ИмяРесурса);
72+
ПутьПриемник = ОбъединитьПути(ПутьККаталгуOscript, ИмяРесурса);
73+
74+
Если ФС.ФайлСуществует(ПутьИсточник) Тогда
75+
ПереместитьФайл(ПутьИсточник, ПутьПриемник);
76+
КонецЕсли;
77+
КонецЦикла;
78+
КонецЦикла;
79+
80+
КонецПроцедуры
81+
82+
Процедура ПроверитьНаличиеБиблиотекиDotNET()
83+
84+
ИмяФайла = "1script_compressor.dll";
85+
86+
Для Каждого ИмяПапки Из СтрРазделить("net4,dotnet", ",") Цикл
87+
ПутьКФайлу = ОбъединитьПути(ТекущийКаталог(), "Components", ИмяПапки, ИмяФайла);
88+
Если Не ФС.ФайлСуществует(ПутьКФайлу) Тогда
89+
ВызватьИсключение СтрШаблон("Отсутсвует .NET библиотека %1 в папке Components/%2", ИмяФайла, ИмяПапки);
90+
КонецЕсли;
91+
КонецЦикла;
92+
93+
КонецПроцедуры
94+
195
Описание
296
.Имя("compressor")
397
.Версия("1.0.0")

0 commit comments

Comments
 (0)