Skip to content

Commit 3edb99c

Browse files
authored
Merge pull request Stivo182#1 from Stivo182/use-hooks-in-packagedef
Переделана сборка с использованием хуков packagedef
2 parents 668732f + 0065e12 commit 3edb99c

File tree

6 files changed

+106
-95
lines changed

6 files changed

+106
-95
lines changed

.github/workflows/release.yml

+5-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ on:
88
env:
99
PACKAGE_MASK: "compressor-*.ospx"
1010
OSCRIPT_VERSION: "default"
11+
ADDITIONAL_OSCRIPT_PACKAGES: '1commands'
1112

1213
jobs:
1314
build:
@@ -44,10 +45,12 @@ jobs:
4445
run: |
4546
opm install opm
4647
opm install -l
47-
opm install 1commands
48+
49+
- name: Установка дополнительных пакетов
50+
run: opm install ${{ env.ADDITIONAL_OSCRIPT_PACKAGES }}
4851

4952
- name: Сборка пакета
50-
run: oscript build.os
53+
run: opm build
5154

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

.github/workflows/test.yml

+7-6
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ on:
44
push:
55
pull_request:
66

7+
env:
8+
TEST_SCRIPT_PATH: './tasks/test.os'
9+
ADDITIONAL_OSCRIPT_PACKAGES: '1commands'
10+
711
jobs:
812
build:
913
runs-on: ${{ matrix.os }}
10-
env:
11-
test_script_path: './tasks/test.os'
12-
additional_oscript_packages: '1commands'
1314
strategy:
1415
fail-fast: false
1516
matrix:
@@ -36,10 +37,10 @@ jobs:
3637
opm install -l --dev
3738
3839
- name: Установка дополнительных пакетов
39-
run: opm install ${{ env.additional_oscript_packages }}
40+
run: opm install ${{ env.ADDITIONAL_OSCRIPT_PACKAGES }}
4041

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

4445
- name: Вычисление имени пакета
4546
shell: bash
@@ -53,4 +54,4 @@ jobs:
5354
run: opm install --dev ${{ steps.extract_package_name.outputs.name }}
5455

5556
- name: Тестирование
56-
run: oscript ${{ env.test_script_path }}
57+
run: oscript ${{ env.TEST_SCRIPT_PATH }}

README.md

-6
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

-80
This file was deleted.

package-loader.os

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

packagedef

+94
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)